utf-8 support fixed
pretty names work again fixed check for added mail addresses config_all added error messages for list creation clarified
This commit is contained in:
parent
126291edf7
commit
2b79935e9e
12 changed files with 280 additions and 77 deletions
|
@ -102,4 +102,4 @@ Version 3.0 - 12/21/02005
|
||||||
* commas are not necessary anymore in webusers file
|
* commas are not necessary anymore in webusers file
|
||||||
* support for MAIL_DOMAIN config setting
|
* support for MAIL_DOMAIN config setting
|
||||||
* requires the clearsilver template engine
|
* requires the clearsilver template engine
|
||||||
|
* changed directory for safely removed mailinglists
|
||||||
|
|
|
@ -6,8 +6,6 @@ support for:
|
||||||
* charset
|
* charset
|
||||||
* show log
|
* show log
|
||||||
|
|
||||||
split filter and manipulate
|
|
||||||
|
|
||||||
allow dynamic addition of user-made config templates (seperate directory, ...)
|
allow dynamic addition of user-made config templates (seperate directory, ...)
|
||||||
|
|
||||||
language switch support
|
language switch support
|
||||||
|
|
|
@ -201,10 +201,21 @@ elsif ($action eq '' || $action eq 'list_select') {
|
||||||
} elsif (($action eq 'config_ask') || ($action eq 'config_do')) {
|
} elsif (($action eq 'config_ask') || ($action eq 'config_do')) {
|
||||||
# User wants to see/change the configuration ...
|
# User wants to see/change the configuration ...
|
||||||
my $subset = $q->param('config_subset');
|
my $subset = $q->param('config_subset');
|
||||||
if (defined($q->param('list')) && ($subset ne '')
|
if (defined($q->param('list')) && ($subset ne '')) {
|
||||||
&& ($subset =~ /^[\w]*$/) && (-e "$TEMPLATE_DIR/config_$subset" . ".cs")) {
|
if ($subset =~ m/^RESERVED-([\w_-]*)$/) {
|
||||||
$success = 'UpdateConfig' if (($action eq 'config_do') && &update_config());
|
$pagename = $1
|
||||||
$pagename = 'config_' . $subset;
|
} elsif (($subset =~ /^[\w]*$/) && (-e "$TEMPLATE_DIR/config_$subset" . ".cs")) {
|
||||||
|
$pagename = 'config_' . $subset;
|
||||||
|
} else {
|
||||||
|
$pagename = '';
|
||||||
|
}
|
||||||
|
if ($pagename ne '') {
|
||||||
|
$success = 'UpdateConfig' if (($action eq 'config_do') && &update_config());
|
||||||
|
} else {
|
||||||
|
$error = 'UnknownConfigPage';
|
||||||
|
warn "missing config page: $subset";
|
||||||
|
$pagename = 'list_select';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$error = 'ParameterMissing';
|
$error = 'ParameterMissing';
|
||||||
$pagename = 'list_select';
|
$pagename = 'list_select';
|
||||||
|
@ -299,7 +310,7 @@ sub output_page {
|
||||||
die "sub template ($TEMPLATE_DIR/$pagename.cs) not found!" unless (-e "$TEMPLATE_DIR/$pagename.cs");
|
die "sub template ($TEMPLATE_DIR/$pagename.cs) not found!" unless (-e "$TEMPLATE_DIR/$pagename.cs");
|
||||||
|
|
||||||
# print http header
|
# print http header
|
||||||
print "Content-Type: text/html\n\n";
|
print "Content-Type: text/html; charset=utf-8\n\n";
|
||||||
|
|
||||||
my $cs = ClearSilver::CS->new($pagedata);
|
my $cs = ClearSilver::CS->new($pagedata);
|
||||||
|
|
||||||
|
@ -398,12 +409,20 @@ sub set_pagedata4list
|
||||||
&set_pagedata4part_list($part_type) if ($part_type ne '');
|
&set_pagedata4part_list($part_type) if ($part_type ne '');
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
my $item;
|
my $address;
|
||||||
|
my $addr_name;
|
||||||
|
my %pretty;
|
||||||
|
tie %pretty, "DB_File", "$LIST_DIR/$listname/webnames" if ($PRETTY_NAMES);
|
||||||
# TODO: use "pretty" output style for visible mail address
|
# TODO: use "pretty" output style for visible mail address
|
||||||
foreach $item ($list->subscribers($part_type)) {
|
foreach $address (sort $list->subscribers($part_type)) {
|
||||||
$pagedata->setValue("Data.List.Subscribers." . $i, "$item") unless ($item eq '');
|
if ($address ne '') {
|
||||||
|
$pagedata->setValue("Data.List.Subscribers." . $i . '.address', "$address");
|
||||||
|
$addr_name = ($PRETTY_NAMES)? $pretty{$address} : '';
|
||||||
|
$pagedata->setValue("Data.List.Subscribers." . $i . '.name', $addr_name);
|
||||||
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
untie %pretty if ($PRETTY_NAMES);
|
||||||
|
|
||||||
$pagedata->setValue("Data.List.hasDenyList", 1) if ($list->isdeny);
|
$pagedata->setValue("Data.List.hasDenyList", 1) if ($list->isdeny);
|
||||||
$pagedata->setValue("Data.List.hasAllowList", 1) if ($list->isallow);
|
$pagedata->setValue("Data.List.hasAllowList", 1) if ($list->isallow);
|
||||||
|
@ -496,7 +515,7 @@ sub set_pagedata4options {
|
||||||
# they have no meaning, so we should adapt them to reality
|
# they have no meaning, so we should adapt them to reality
|
||||||
$pagedata->setValue("Data.List.Options.t" , 1)
|
$pagedata->setValue("Data.List.Options.t" , 1)
|
||||||
if (-e "$dir_of_list/text/trailer");
|
if (-e "$dir_of_list/text/trailer");
|
||||||
$pagedata->setValue("Data.List.Options.p" , 1)
|
$pagedata->setValue("Data.List.Options.f" , 1)
|
||||||
if (-e "$dir_of_list/prefix");
|
if (-e "$dir_of_list/prefix");
|
||||||
$pagedata->setValue("Data.List.Options.x" , 1)
|
$pagedata->setValue("Data.List.Options.x" , 1)
|
||||||
if ((-e "$dir_of_list/mimeremove") || (-e "$dir_of_list/mimereject"));
|
if ((-e "$dir_of_list/mimeremove") || (-e "$dir_of_list/mimereject"));
|
||||||
|
@ -568,22 +587,30 @@ sub delete_list {
|
||||||
# they don't show up. That way they can always be recovered by a helpful
|
# they don't show up. That way they can always be recovered by a helpful
|
||||||
# sysadmin should he/she be in the mood :)
|
# sysadmin should he/she be in the mood :)
|
||||||
|
|
||||||
|
my $SAFE_DIR = "$LIST_DIR/_deleted_lists";
|
||||||
|
mkdir "$SAFE_DIR", 0700 if (! -e "$SAFE_DIR");
|
||||||
|
|
||||||
|
# look for an unused directory name
|
||||||
|
my $i = 0;
|
||||||
|
while (-e "$SAFE_DIR/" . $q->param('list') . "-$i") { $i++; }
|
||||||
|
|
||||||
|
$SAFE_DIR .= '/' . $q->param('list') . "-$i";
|
||||||
|
|
||||||
my ($oldfile); $oldfile = "$LIST_DIR/" . $q->param('list');
|
my ($oldfile); $oldfile = "$LIST_DIR/" . $q->param('list');
|
||||||
my ($newfile); $newfile = "$LIST_DIR/." . $q->param('list');
|
unless (move($oldfile, $SAFE_DIR)) {
|
||||||
unless (move($oldfile, $newfile)) {
|
|
||||||
$warning = 'SafeRemoveRenameDirFailed';
|
$warning = 'SafeRemoveRenameDirFailed';
|
||||||
return (1==0);
|
return (1==0);
|
||||||
}
|
}
|
||||||
mkdir "$HOME_DIR/deleted.qmail", 0700 if(!-e "$HOME_DIR/deleted.qmail");
|
|
||||||
|
|
||||||
unless (opendir(DIR, "$HOME_DIR")) {
|
unless (opendir(DIR, "$HOME_DIR")) {
|
||||||
$warning = 'DotQmailDirAccessDenied';
|
$warning = 'DotQmailDirAccessDenied';
|
||||||
return (1==0);
|
return (1==0);
|
||||||
}
|
}
|
||||||
|
# TODO: this could possibly move some qmail files of other lists - improve it!
|
||||||
my @files = map { "$HOME_DIR/$1" if m{^(\.qmail.+)$} } grep { /^\.qmail-$listaddress/ } readdir DIR;
|
my @files = map { "$HOME_DIR/$1" if m{^(\.qmail.+)$} } grep { /^\.qmail-$listaddress/ } readdir DIR;
|
||||||
closedir DIR;
|
closedir DIR;
|
||||||
foreach (@files) {
|
foreach (@files) {
|
||||||
unless (move($_, "$HOME_DIR/deleted.qmail/")) {
|
unless (move($_, "$SAFE_DIR")) {
|
||||||
$warning = 'SafeRemoveMoveDotQmailFailed';
|
$warning = 'SafeRemoveMoveDotQmailFailed';
|
||||||
return (1==0);
|
return (1==0);
|
||||||
}
|
}
|
||||||
|
@ -624,7 +651,7 @@ sub untaint {
|
||||||
next if($params[$i] eq 'mailaddressfile');
|
next if($params[$i] eq 'mailaddressfile');
|
||||||
foreach $param ($q->param($params[$i])) {
|
foreach $param ($q->param($params[$i])) {
|
||||||
next if $param eq '';
|
next if $param eq '';
|
||||||
if ($param =~ /^([#-\@\w\.\/\[\]\:\n\r\>\< _]+)$/) {
|
if ($param =~ /^([#-\@\w\.\/\[\]\:\n\r\>\< _"']+)$/) {
|
||||||
push @values, $1;
|
push @values, $1;
|
||||||
} else {
|
} else {
|
||||||
warn "Tainted input in '$params[$i]': " . $q->param($params[$i]);
|
warn "Tainted input in '$params[$i]': " . $q->param($params[$i]);
|
||||||
|
@ -666,10 +693,11 @@ sub check_permission_for_action {
|
||||||
sub add_address {
|
sub add_address {
|
||||||
# Add an address to a list ..
|
# Add an address to a list ..
|
||||||
|
|
||||||
my ($address, $list, $part, @addresses, $count);
|
my ($address, $list, $part, @addresses, $fail_count);
|
||||||
$list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list'));
|
$list = new Mail::Ezmlm("$LIST_DIR/" . $q->param('list'));
|
||||||
$part = &get_list_part();
|
$part = &get_list_part();
|
||||||
|
|
||||||
|
$fail_count = 0;
|
||||||
|
|
||||||
if (($q->param('mailaddressfile')) && ($FILE_UPLOAD)) {
|
if (($q->param('mailaddressfile')) && ($FILE_UPLOAD)) {
|
||||||
# Sanity check
|
# Sanity check
|
||||||
|
@ -684,9 +712,12 @@ sub add_address {
|
||||||
my($fh) = $q->param('mailaddressfile');
|
my($fh) = $q->param('mailaddressfile');
|
||||||
while (<$fh>) {
|
while (<$fh>) {
|
||||||
next if (/^\s*$/ or /^#/); # blank, comments
|
next if (/^\s*$/ or /^#/); # blank, comments
|
||||||
next unless ( /(\w[\-\w_\.]*)@(\w[\-\w_\.]+)/ ); # email address ...
|
if ( /(\w[\-\w_\.]*)@(\w[\-\w_\.]+)/ ) {
|
||||||
chomp();
|
chomp();
|
||||||
push @addresses, "$_";
|
push @addresses, "$_";
|
||||||
|
} else {
|
||||||
|
$fail_count++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -697,8 +728,8 @@ sub add_address {
|
||||||
$address .= $DEFAULT_HOST if ($q->param('mailaddress_add') =~ /\@$/);
|
$address .= $DEFAULT_HOST if ($q->param('mailaddress_add') =~ /\@$/);
|
||||||
|
|
||||||
# untaint
|
# untaint
|
||||||
if ($address =~ /(\w[\-\w_\.]*)@(\w[\-\w_\.]+)/) {
|
if ($address =~ m/(\w[\-\w_\.]*)@(\w[\-\w_\.]+)/) {
|
||||||
push @addresses, "$1\@$2";
|
push @addresses, "$address";
|
||||||
} else {
|
} else {
|
||||||
warn "invalid address to add: $address to $part";
|
warn "invalid address to add: $address to $part";
|
||||||
$warning = 'AddAddress';
|
$warning = 'AddAddress';
|
||||||
|
@ -707,23 +738,28 @@ sub add_address {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$count = 0;
|
my %pretty;
|
||||||
foreach $address (@addresses) {
|
my $add;
|
||||||
|
tie %pretty, "DB_File", "$LIST_DIR/" . $q->param('list') . "/webnames" if ($PRETTY_NAMES);
|
||||||
|
foreach $address (@addresses) {
|
||||||
|
|
||||||
my($add) = Mail::Address->parse($address);
|
($add) = Mail::Address->parse($address);
|
||||||
if(defined($add->name()) && $PRETTY_NAMES) {
|
if (($add->address() =~ /^\w[\w_-]*\@/) && !($list->issub($add->address(), $part))) {
|
||||||
my(%pretty);
|
# it seems, that we cannot trust the return value of "$list->sub"
|
||||||
tie %pretty, "DB_File", "$LIST_DIR/" . $q->param('list') . "/webnames";
|
$list->sub($add->address(), $part);
|
||||||
$pretty{$add->address()} = $add->name();
|
if(defined($add->name()) && $PRETTY_NAMES) {
|
||||||
untie %pretty;
|
$pretty{$add->address()} = $add->name();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($list->issub($add->address(), $part)) {
|
|
||||||
$warning = 'AddAddress';
|
|
||||||
} else {
|
} else {
|
||||||
$warning = 'AddAddress' unless ($list->sub($add->address(), $part));
|
$fail_count++;
|
||||||
}
|
}
|
||||||
$count++;
|
}
|
||||||
|
untie %pretty if ($PRETTY_NAMES);
|
||||||
|
if ($fail_count gt 0) {
|
||||||
|
$warning = 'AddAddress';
|
||||||
|
return (1==0);
|
||||||
|
} else {
|
||||||
|
return (0==0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -823,8 +859,12 @@ sub create_list {
|
||||||
$warning = 'InvalidLocalPart';
|
$warning = 'InvalidLocalPart';
|
||||||
return (1==0);
|
return (1==0);
|
||||||
}
|
}
|
||||||
if(-e ("$LIST_DIR/$listname/lock") || -e ("$HOME_DIR/.qmail-$qmail")) {
|
if (-e "$LIST_DIR/$listname/lock") {
|
||||||
$warning = 'ListAlreadyExists';
|
$warning = 'ListNameAlreadyExists';
|
||||||
|
return (1==0);
|
||||||
|
}
|
||||||
|
if (-e "$HOME_DIR/.qmail-$qmail") {
|
||||||
|
$warning = 'ListAddressAlreadyExists';
|
||||||
return (1==0);
|
return (1==0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1151,17 +1191,6 @@ sub webauth_create_allowed {
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
sub pretty_names {
|
|
||||||
return undef unless($PRETTY_NAMES);
|
|
||||||
my (%pretty, %prettymem);
|
|
||||||
tie %pretty, "DB_File", "$LIST_DIR/" . $q->param('list') . '/webnames';
|
|
||||||
%prettymem = %pretty;
|
|
||||||
untie %pretty;
|
|
||||||
|
|
||||||
return \%prettymem;
|
|
||||||
}
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------
|
|
||||||
sub rmtree {
|
sub rmtree {
|
||||||
# A subroutine to recursively delete a directory (like rm -f).
|
# A subroutine to recursively delete a directory (like rm -f).
|
||||||
# Based on the one in the perl cookbook :)
|
# Based on the one in the perl cookbook :)
|
||||||
|
|
|
@ -10,7 +10,7 @@ Lang {
|
||||||
Subscribers = AbonnentInnen
|
Subscribers = AbonnentInnen
|
||||||
AllowList = Zulassungsliste
|
AllowList = Zulassungsliste
|
||||||
DenyList = Ablehnungsliste
|
DenyList = Ablehnungsliste
|
||||||
DigestList = Übersichtsliste
|
DigestList = Zusammenfassung
|
||||||
ModList = ModeratorInnen
|
ModList = ModeratorInnen
|
||||||
ConfigMain = Einstellungen
|
ConfigMain = Einstellungen
|
||||||
ConfigSub = Einschreibung
|
ConfigSub = Einschreibung
|
||||||
|
@ -18,6 +18,7 @@ Lang {
|
||||||
ConfigAdmin = Administration
|
ConfigAdmin = Administration
|
||||||
ConfigArchive = Archivierung
|
ConfigArchive = Archivierung
|
||||||
ConfigProcess = Verarbeitung
|
ConfigProcess = Verarbeitung
|
||||||
|
ConfigAll = Übersicht
|
||||||
TextFiles = Texte
|
TextFiles = Texte
|
||||||
ListSelect = Auswahl einer Liste
|
ListSelect = Auswahl einer Liste
|
||||||
Properties = Eigenschaften von
|
Properties = Eigenschaften von
|
||||||
|
@ -32,6 +33,7 @@ Lang {
|
||||||
ConfigAdmin = Fern-Administration der Liste
|
ConfigAdmin = Fern-Administration der Liste
|
||||||
ConfigArchive = Archivierung der Liste
|
ConfigArchive = Archivierung der Liste
|
||||||
ConfigProcess = Nachrichtenverarbeitung
|
ConfigProcess = Nachrichtenverarbeitung
|
||||||
|
ConfigAll = Einstellungen im Überblick
|
||||||
SubscriberList = AbonnentInnen der Liste
|
SubscriberList = AbonnentInnen der Liste
|
||||||
AllowList = Zugelassene Nutzer
|
AllowList = Zugelassene Nutzer
|
||||||
DenyList = Abzuweisende Nutzer
|
DenyList = Abzuweisende Nutzer
|
||||||
|
@ -62,6 +64,7 @@ Lang {
|
||||||
Forbidden = Fehler: dir fehlen die notwendigen Rechte für diese Aktion
|
Forbidden = Fehler: dir fehlen die notwendigen Rechte für diese Aktion
|
||||||
ListDirUnavailable = Fehler beim Zugriff auf das Hauptverzeichnis der Listen!
|
ListDirUnavailable = Fehler beim Zugriff auf das Hauptverzeichnis der Listen!
|
||||||
InvalidFileName = Der Dateiname ist nicht zulässig.
|
InvalidFileName = Der Dateiname ist nicht zulässig.
|
||||||
|
UnknownConfigPage = Die gähle Konfigurations-Seite existiert nicht!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,7 +75,8 @@ Lang {
|
||||||
DeleteList = Die Löschung der Mailingliste schlug fehl!
|
DeleteList = Die Löschung der Mailingliste schlug fehl!
|
||||||
UpdateConfig = Beim Speichern der Einstellungen trat ein Fehler auf!
|
UpdateConfig = Beim Speichern der Einstellungen trat ein Fehler auf!
|
||||||
SaveFile = Die Datei konnte nicht gespeichert werden!
|
SaveFile = Die Datei konnte nicht gespeichert werden!
|
||||||
ListAlreadyExists = Es gibt bereits eine Liste mit diesem Namen.
|
ListNameAlreadyExists = Es gibt bereits eine Liste mit diesem Namen.
|
||||||
|
ListAddressAlreadyExists = Es gibt bereits eine Liste mit dieser Adresse.
|
||||||
ListDoesNotExist = Eine Liste dieses Namens existiert nicht.
|
ListDoesNotExist = Eine Liste dieses Namens existiert nicht.
|
||||||
ListDirAccessDenied = Fehler beim Zugriff auf das Verzeichnis der Liste
|
ListDirAccessDenied = Fehler beim Zugriff auf das Verzeichnis der Liste
|
||||||
TextDirAccessDenied = Beim Zugriff auf das Text-Verzeichnis der Liste trat ein Fehler auf.
|
TextDirAccessDenied = Beim Zugriff auf das Text-Verzeichnis der Liste trat ein Fehler auf.
|
||||||
|
@ -93,7 +97,7 @@ Lang {
|
||||||
|
|
||||||
SuccessMessage {
|
SuccessMessage {
|
||||||
AddAddress = Einschreibung erfolgreich
|
AddAddress = Einschreibung erfolgreich
|
||||||
DeleteAddress = Löschung erfolgreich abgeschlossen
|
DeleteAddress = Austragung erfolgreich abgeschlossen
|
||||||
CreateList = Die neue Liste wurde erfolgreich angelegt.
|
CreateList = Die neue Liste wurde erfolgreich angelegt.
|
||||||
DeleteList = Die Mailingliste wurde gelöscht.
|
DeleteList = Die Mailingliste wurde gelöscht.
|
||||||
UpdateConfig = Die neuen Einstellungen wurden erfolgreich gespeichert.
|
UpdateConfig = Die neuen Einstellungen wurden erfolgreich gespeichert.
|
||||||
|
@ -147,7 +151,7 @@ Lang {
|
||||||
ListName = Name der Liste
|
ListName = Name der Liste
|
||||||
ListAddress = Addresse der Liste
|
ListAddress = Addresse der Liste
|
||||||
ListOptions = Grundlegende Einstellungen
|
ListOptions = Grundlegende Einstellungen
|
||||||
AllowedToEdit = Die Nutzer, die diese Liste per Web-Interface konfigurieren dürfen:
|
AllowedToEdit = Nutzer, die diese Liste per Web-Interface konfigurieren dürfen:
|
||||||
HeaderRemove = zu entfernende Kopfzeilen
|
HeaderRemove = zu entfernende Kopfzeilen
|
||||||
HeaderAdd = hinzuzufügende Kopfzeilen
|
HeaderAdd = hinzuzufügende Kopfzeilen
|
||||||
MimeRemove = Nachrichtenbestandteile dieses Typs werden entfernt
|
MimeRemove = Nachrichtenbestandteile dieses Typs werden entfernt
|
||||||
|
@ -182,12 +186,13 @@ Lang {
|
||||||
ConfigAdmin = Fern-AdministratorInnen sind (per Voreinstellung) auch ModeratorInnen für die Einschreibung und für eingesandte Mails. Sie können berechtigt sein, per Mail Nutzer ein- und auszutragen, sowie Textbausteine zu verändern.
|
ConfigAdmin = Fern-AdministratorInnen sind (per Voreinstellung) auch ModeratorInnen für die Einschreibung und für eingesandte Mails. Sie können berechtigt sein, per Mail Nutzer ein- und auszutragen, sowie Textbausteine zu verändern.
|
||||||
ConfigArchive = Das Mailinglisten-Archiv ist per Mail verfügbar. Außerdem benötigst du ein Archiv, falls du vergangene Mails im Internet zur Verfügung stellen möchtest (z.B. mit ezmlm-www).
|
ConfigArchive = Das Mailinglisten-Archiv ist per Mail verfügbar. Außerdem benötigst du ein Archiv, falls du vergangene Mails im Internet zur Verfügung stellen möchtest (z.B. mit ezmlm-www).
|
||||||
ConfigProcess = Die folgenden Regeln werden auf alle Mails angewandt, bevor sie an die AbonnentInnen verteilt werden.
|
ConfigProcess = Die folgenden Regeln werden auf alle Mails angewandt, bevor sie an die AbonnentInnen verteilt werden.
|
||||||
ConfigMain = Die allgemeinen Eigenschaften bestimmen einige wichtige Verhaltensweisen der Mailingliste.
|
ConfigMain = Hier findest du ein paar allgemeine Einstellungen der Mailingliste, die sich nicht in den themenorientierten Rubriken unterbringen ließen.
|
||||||
ConfigPosting = Die Einsende-Konfiguration bestimmt, wer Nachrichten einsenden darf und wie diese Mails verarbeitet werden sollen.
|
ConfigPosting = Die Einsende-Konfiguration bestimmt, wer Nachrichten einsenden darf und welchen Bedingungen die Mails genügen müssen.
|
||||||
ConfigSub = Hier kannst du festlegen, wer sich als Abonnent selbständig eintragen darf und wie der Einschreibungsprozess abläuft.
|
ConfigSub = Hier kannst du festlegen, wer sich als Abonnent selbständig eintragen darf und wie der Einschreibungsprozess abläuft.
|
||||||
|
ConfigAll = Diese Seite enthält alle verfügbaren Optionen auf einen Blick.
|
||||||
ListDelete = Die Mailingliste und alle damit verbundenen Daten werden hiermit vollständig entfernt.
|
ListDelete = Die Mailingliste und alle damit verbundenen Daten werden hiermit vollständig entfernt.
|
||||||
AllowList = An die Adressen der Zulassungsliste werden keine Mails verschickt. Einsendungen durch diese Adressen werden so behandelt, als kämen sie von AbonnentInnen. Üblicherweise werden Aliase von AbonnentInnen in die Zulassungsliste eingetragen.
|
AllowList = An die Adressen der Zulassungsliste werden keine Mails verschickt. Einsendungen von diesen Adressen werden so behandelt, als kämen sie von AbonnentInnen. Üblicherweise solltest du Aliase von AbonnentInnen in die Zulassungsliste eintragen.
|
||||||
DenyList = Falls du Mails von bestimmte Mailadressen verweigern möchtest, dann füge sie einfach zur (aktivierten) Ablehnungsliste hinzu Dies kann nützlich sein, um unbeliebte Nutzer auszuschließen oder um störende Abwesenheitsbenachrichtigungen zu verhindern.
|
DenyList = Falls du Mails von bestimmte Mailadressen verweigern möchtest, dann füge sie einfach zur Ablehnungsliste hinzu Dies kann nützlich sein, um unbeliebte Nutzer auszuschließen oder um störende Abwesenheitsbenachrichtigungen zu verhindern.
|
||||||
DigestList = Einige AbonnentInnen deiner Mailingliste sind möglicherweise nicht an jeder einzelnen Nachricht interessiert, sondern ziehen es vor, stattdessen regelmäßig automatisch erstellte Zusammenfassungen zu erhalten.
|
DigestList = Einige AbonnentInnen deiner Mailingliste sind möglicherweise nicht an jeder einzelnen Nachricht interessiert, sondern ziehen es vor, stattdessen regelmäßig automatisch erstellte Zusammenfassungen zu erhalten.
|
||||||
ModList = ModeratorInnen (für die Einschreibung von AbonnentInnen und die Einsendungen an die Liste) und Fern-AdministratorInnen können die Kontrolle über viele wichtige Aspekte der Liste übernehmen (falls du sie dementsprechend konfigurierst).
|
ModList = ModeratorInnen (für die Einschreibung von AbonnentInnen und die Einsendungen an die Liste) und Fern-AdministratorInnen können die Kontrolle über viele wichtige Aspekte der Liste übernehmen (falls du sie dementsprechend konfigurierst).
|
||||||
SubscriberList = Die AbonnentInnen der Mailingliste empfangen alle versandten Nachrigten der Liste. Zudem kann es ihnen gestattet sein, Nachrichten direkt oder indirekt zur weiteren Verteilung an die Liste zu senden. Oft ist es anonymen Nutzern gestattet, sich selbständig in die Mailingliste einzuschreiben, ohne die Hilfe eines Administrators in Anspruch nehmen zu müssen.
|
SubscriberList = Die AbonnentInnen der Mailingliste empfangen alle versandten Nachrigten der Liste. Zudem kann es ihnen gestattet sein, Nachrichten direkt oder indirekt zur weiteren Verteilung an die Liste zu senden. Oft ist es anonymen Nutzern gestattet, sich selbständig in die Mailingliste einzuschreiben, ohne die Hilfe eines Administrators in Anspruch nehmen zu müssen.
|
||||||
|
@ -202,6 +207,7 @@ Lang {
|
||||||
ConfigSub = Einschreibungsdetails
|
ConfigSub = Einschreibungsdetails
|
||||||
ConfigMain = Allgemeine Listen-Einstellungen
|
ConfigMain = Allgemeine Listen-Einstellungen
|
||||||
ConfigProcess = Verarbeitungsregeln
|
ConfigProcess = Verarbeitungsregeln
|
||||||
|
ConfigAll = Einstellungen
|
||||||
ListCreate = Eigenschaften der neuen Liste
|
ListCreate = Eigenschaften der neuen Liste
|
||||||
ListDelete = Löschung der Mailingliste
|
ListDelete = Löschung der Mailingliste
|
||||||
RelevantOptions = Relevante Optionen
|
RelevantOptions = Relevante Optionen
|
||||||
|
|
|
@ -18,6 +18,7 @@ Lang {
|
||||||
ConfigAdmin = administration
|
ConfigAdmin = administration
|
||||||
ConfigArchive = archive
|
ConfigArchive = archive
|
||||||
ConfigProcess = processing
|
ConfigProcess = processing
|
||||||
|
ConfigAll = overview
|
||||||
TextFiles = Text files
|
TextFiles = Text files
|
||||||
ListSelect = Choose a list
|
ListSelect = Choose a list
|
||||||
Properties = Properties of
|
Properties = Properties of
|
||||||
|
@ -32,6 +33,7 @@ Lang {
|
||||||
ConfigAdmin = Remote administration
|
ConfigAdmin = Remote administration
|
||||||
ConfigArchive = Archive options
|
ConfigArchive = Archive options
|
||||||
ConfigProcess = Message processing
|
ConfigProcess = Message processing
|
||||||
|
ConfigAll = Complete configuration
|
||||||
SubscriberList = Subscribers of the list
|
SubscriberList = Subscribers of the list
|
||||||
AllowList = Allowed users
|
AllowList = Allowed users
|
||||||
DenyList = Blocked users
|
DenyList = Blocked users
|
||||||
|
@ -62,6 +64,7 @@ Lang {
|
||||||
Forbidden = Error: you are not allowed to do this!
|
Forbidden = Error: you are not allowed to do this!
|
||||||
ListDirUnavailable = Could not create the list directory!
|
ListDirUnavailable = Could not create the list directory!
|
||||||
InvalidFileName = The name of the file is invalid!
|
InvalidFileName = The name of the file is invalid!
|
||||||
|
UnknownConfigPage = The chosen config page is invalid!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,7 +75,8 @@ Lang {
|
||||||
DeleteList = Removal of mailing list failed!
|
DeleteList = Removal of mailing list failed!
|
||||||
UpdateConfig = Update of configuration failed!
|
UpdateConfig = Update of configuration failed!
|
||||||
SaveFile = The file could not be saved!
|
SaveFile = The file could not be saved!
|
||||||
ListAlreadyExists = There is already a list with this name!
|
ListNameAlreadyExists = There is already a list with this name!
|
||||||
|
ListAddressAlreadyExists = There is already a list with this address!
|
||||||
ListDoesNotExist = A list with this name does not exist!
|
ListDoesNotExist = A list with this name does not exist!
|
||||||
ListDirAccessDenied = Unable to access the list's directory:
|
ListDirAccessDenied = Unable to access the list's directory:
|
||||||
TextDirAccessDenied = Unable to access the list's directory of text files:
|
TextDirAccessDenied = Unable to access the list's directory of text files:
|
||||||
|
@ -147,7 +151,7 @@ Lang {
|
||||||
ListName = List Name
|
ListName = List Name
|
||||||
ListAddress = List Address
|
ListAddress = List Address
|
||||||
ListOptions = Basic List Options
|
ListOptions = Basic List Options
|
||||||
AllowedToEdit = Users allowed to edit this list via web interface
|
AllowedToEdit = Users allowed to edit this list via web interface:
|
||||||
HeaderRemove = Headers to strip from all outgoing mail
|
HeaderRemove = Headers to strip from all outgoing mail
|
||||||
HeaderAdd = Headers to add to all outgoing mail
|
HeaderAdd = Headers to add to all outgoing mail
|
||||||
MimeRemove = Mime types to strip from all outgoing mail
|
MimeRemove = Mime types to strip from all outgoing mail
|
||||||
|
@ -183,9 +187,10 @@ Lang {
|
||||||
ConfigAdmin = Remote administrators are (by default) also moderators for subscription and for posting. They may have the permission to (un)subscribe users and to change the text files of the list by sending emails to the mailing list software.
|
ConfigAdmin = Remote administrators are (by default) also moderators for subscription and for posting. They may have the permission to (un)subscribe users and to change the text files of the list by sending emails to the mailing list software.
|
||||||
ConfigArchive = The mailing list archive can be accessed by mail. Additionally you will want to create a list archive, if you plan to publish it (e.g. with ezmlm-www).
|
ConfigArchive = The mailing list archive can be accessed by mail. Additionally you will want to create a list archive, if you plan to publish it (e.g. with ezmlm-www).
|
||||||
ConfigProcess = Modify some message properties, before they are distributed to the subscribers.
|
ConfigProcess = Modify some message properties, before they are distributed to the subscribers.
|
||||||
ConfigMain = The basic properties of a list define some important settings (e.g. mail address) and the general behaviour (public or closed).
|
ConfigMain = Here you find some settings, that did not fit into any other category.
|
||||||
ConfigPosting = The posting configuration determines, who is allowed to send messages to the list and how these mails will be processed.
|
ConfigPosting = The posting configuration determines, who is allowed to send messages to the list and how these mails will be processed.
|
||||||
ConfigSub = Here you may define, who is allowed to subscribe to the list and you can set some details of the subscription process.
|
ConfigSub = Here you may define, who is allowed to subscribe to the list and you can set some details of the subscription process.
|
||||||
|
ConfigAll = This is the complete list of all available properties of the list. Usually it should be easier to use the topic-based configuration pages, but - of course - this is your choice.
|
||||||
ListDelete = This mailinglist and everything inside of it will be removed completely.
|
ListDelete = This mailinglist and everything inside of it will be removed completely.
|
||||||
AllowList = Members of the allow list will not receive outgoing mails, but they have the same rights, as normal subscribers. Usually the allow list will contain mail aliases of subscribers.
|
AllowList = Members of the allow list will not receive outgoing mails, but they have the same rights, as normal subscribers. Usually the allow list will contain mail aliases of subscribers.
|
||||||
DenyList = If you want to prevent specific mail addresses from using this list (subscription, posting, ...), then you should add them to the deny list and activate it. This can be useful for annoying people and even for notorious vacation reply users. But since it is fairly easy to fake an mail address, this will not really improve security.
|
DenyList = If you want to prevent specific mail addresses from using this list (subscription, posting, ...), then you should add them to the deny list and activate it. This can be useful for annoying people and even for notorious vacation reply users. But since it is fairly easy to fake an mail address, this will not really improve security.
|
||||||
|
@ -203,6 +208,7 @@ Lang {
|
||||||
ConfigSub = Subscription details
|
ConfigSub = Subscription details
|
||||||
ConfigMain = General list configuration
|
ConfigMain = General list configuration
|
||||||
ConfigProcess = Processing rules
|
ConfigProcess = Processing rules
|
||||||
|
ConfigAll = Available properties
|
||||||
ListCreate = Properties of the new list
|
ListCreate = Properties of the new list
|
||||||
ListDelete = Remove this mailinglist
|
ListDelete = Remove this mailinglist
|
||||||
RelevantOptions = Useful settings
|
RelevantOptions = Useful settings
|
||||||
|
|
163
ezmlm-web-3.0/template/config_all.cs
Normal file
163
ezmlm-web-3.0/template/config_all.cs
Normal file
|
@ -0,0 +1,163 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ConfigAll) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<p><?cs var:html_escape(Lang.Introduction.ConfigAll) ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.ConfigAll) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="config_subset" value="all" />
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<!-- public subsccription and archive -->
|
||||||
|
<li><?cs call:checkbox("p") ?></li>
|
||||||
|
|
||||||
|
<!-- do not require confirmation for subscription -->
|
||||||
|
<li><?cs call:checkbox("h") ?></li>
|
||||||
|
|
||||||
|
<!-- do not require confirmation for unsubscribe -->
|
||||||
|
<li><?cs call:checkbox("j") ?></li>
|
||||||
|
|
||||||
|
<!-- moderate subscription -->
|
||||||
|
<li><?cs call:checkbox("s") ?></li>
|
||||||
|
|
||||||
|
<!-- use deny list -->
|
||||||
|
<li><?cs call:checkbox("k") ?></li>
|
||||||
|
|
||||||
|
<!-- only subscribers may post -->
|
||||||
|
<li><?cs call:checkbox("u") ?></li>
|
||||||
|
|
||||||
|
<!-- require confirmation from poster -->
|
||||||
|
<li><?cs call:checkbox("y") ?></li>
|
||||||
|
|
||||||
|
<!-- posted messages are moderated -->
|
||||||
|
<li><?cs call:checkbox("m") ?></li>
|
||||||
|
|
||||||
|
<!-- only moderators may post -->
|
||||||
|
<li><?cs call:checkbox("o") ?></li>
|
||||||
|
|
||||||
|
<!-- process mailman-style requests -->
|
||||||
|
<li><?cs call:checkbox("q") ?></li>
|
||||||
|
|
||||||
|
<!-- remove ezmlm-warn -->
|
||||||
|
<li><?cs call:checkbox("w") ?></li>
|
||||||
|
|
||||||
|
<!-- archive messages -->
|
||||||
|
<li><?cs call:checkbox("a") ?></li>
|
||||||
|
|
||||||
|
<!-- only moderators may access the archive -->
|
||||||
|
<li><?cs call:checkbox("b") ?></li>
|
||||||
|
|
||||||
|
<!-- block unknown users from archive -->
|
||||||
|
<li><?cs call:checkbox("g") ?></li>
|
||||||
|
|
||||||
|
<!-- remove 'no-archive' header -->
|
||||||
|
<li><?cs call:checkbox("i") ?></li>
|
||||||
|
|
||||||
|
<!-- enable remote administration -->
|
||||||
|
<li><?cs call:checkbox("r") ?></li>
|
||||||
|
|
||||||
|
<!-- administrators may request subscribers list -->
|
||||||
|
<li><?cs call:checkbox("l") ?></li>
|
||||||
|
|
||||||
|
<!-- administrators may edit text files via mail -->
|
||||||
|
<li><?cs call:checkbox("n") ?></li>
|
||||||
|
|
||||||
|
<!-- from address -->
|
||||||
|
<li><?cs call:setting("3") ?></li>
|
||||||
|
|
||||||
|
<!-- list owner address -->
|
||||||
|
<li><?cs call:setting("5") ?></li>
|
||||||
|
|
||||||
|
<!-- mysql database -->
|
||||||
|
<?cs if:Data.Modules.mySQL ?>
|
||||||
|
<li><?cs call:setting("6") ?></li><?cs /if ?>
|
||||||
|
|
||||||
|
<!-- set main list name -->
|
||||||
|
<li><?cs call:setting("0") ?></li>
|
||||||
|
|
||||||
|
<!-- messsage moderator -->
|
||||||
|
<li><?cs call:setting("7") ?></li>
|
||||||
|
|
||||||
|
<!-- custom path to subscription moderators -->
|
||||||
|
<li><?cs call:setting("8") ?></li>
|
||||||
|
|
||||||
|
<!-- subject prefix -->
|
||||||
|
<li><?cs call:checkbox("f") ?>
|
||||||
|
<ul><li><input type="text" name="prefix" value="<?cs
|
||||||
|
var:html_escape(Data.List.Prefix) ?>" size="70" />
|
||||||
|
</li></ul></li>
|
||||||
|
|
||||||
|
<!-- trailing text -->
|
||||||
|
<li><?cs call:checkbox("t") ?>
|
||||||
|
<?cs if:(Data.List.Options.t == 1) ?>
|
||||||
|
<!-- turn off trailaer, if "-t" is not activated, as it will be
|
||||||
|
removed during the next config_update -->
|
||||||
|
<ul><li><textarea name="trailing_text" rows="3" cols="72"><?cs
|
||||||
|
var:html_escape(Data.List.TrailingText) ?></textarea></li>
|
||||||
|
</ul></li><?cs /if ?>
|
||||||
|
|
||||||
|
<!-- message size limit -->
|
||||||
|
<li><input type="checkbox" name="msgsize_max_state"
|
||||||
|
value="selected" id="msgsize_max_state" <?cs
|
||||||
|
if:Data.List.MsgSize.Max>0 ?>checked="checked"<?cs /if ?> />
|
||||||
|
<label for="msgsize_max_state"><?cs var:html_escape(Lang.Misc.MessageSize.Max) ?></label>
|
||||||
|
<ul><li><input type="text" name="msgsize_max_value" size="10"
|
||||||
|
style="text-align:right" value="<?cs
|
||||||
|
alt:Data.List.MsgSize.Max ?>30000<?cs /alt ?>" /> <?cs
|
||||||
|
var:html_escape(Lang.Misc.MessageSize.Unit) ?></li></ul></li>
|
||||||
|
<li><input type="checkbox" name="msgsize_min_state"
|
||||||
|
value="selected" id="msgsize_min_state" <?cs
|
||||||
|
if:Data.List.MsgSize.Min>0 ?>checked="checked"<?cs /if ?> />
|
||||||
|
<label for="msgsize_min_state"><?cs var:html_escape(Lang.Misc.MessageSize.Min) ?></label>
|
||||||
|
<ul><li><input type="text" name="msgsize_min_value" size="10"
|
||||||
|
style="text-align:right" value="<?cs
|
||||||
|
alt:Data.List.MsgSize.Min ?>2<?cs /alt ?>" /> <?cs
|
||||||
|
var:html_escape(Lang.Misc.MessageSize.Unit) ?></li></ul></li>
|
||||||
|
|
||||||
|
<!-- mimeremove and mimereject -->
|
||||||
|
<li><?cs call:checkbox("x") ?>
|
||||||
|
<?cs if:(Data.List.Options.x == 1) ?><ul>
|
||||||
|
<!-- turn off mimermove, if "-x" is not activated, as it will be
|
||||||
|
removed during the next config_update -->
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.MimeReject) ?>:<br/>
|
||||||
|
<textarea name="mimereject" rows="4" cols="70"><?cs
|
||||||
|
var:html_escape(Data.List.MimeReject) ?></textarea></li>
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.MimeRemove) ?>:<br/>
|
||||||
|
<textarea name="mimeremove" rows="4" cols="70"><?cs
|
||||||
|
var:html_escape(Data.List.MimeRemove) ?></textarea></li>
|
||||||
|
</ul><?cs /if ?></li>
|
||||||
|
|
||||||
|
<!-- headerremove -->
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.HeaderRemove) ?>:<br/>
|
||||||
|
<ul><li><textarea name="headerremove" rows="5" cols="70"><?cs
|
||||||
|
var:html_escape(Data.List.HeaderRemove) ?></textarea></li></ul></li>
|
||||||
|
|
||||||
|
<!-- headeradd -->
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.HeaderAdd) ?>:<br/>
|
||||||
|
<ul><li><textarea name="headeradd" rows="5" cols="70"><?cs
|
||||||
|
var:html_escape(Data.List.HeaderAdd) ?></textarea></li></ul></li>
|
||||||
|
|
||||||
|
<!-- ezmlm-web administators -->
|
||||||
|
<?cs if:Data.List.WebUsers ?>
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.AllowedToEdit) ?>
|
||||||
|
<ul><li><input type="text"
|
||||||
|
name="webusers" value="<?cs var:html_escape(Data.List.WebUsers)
|
||||||
|
?>" size="40" /><br/>
|
||||||
|
</li></ul></li><?cs /if ?>
|
||||||
|
|
||||||
|
<li><!-- include default form values -->
|
||||||
|
<?cs include:TemplateDir + '/form_common.cs' ?>
|
||||||
|
|
||||||
|
<input type="hidden" name="action" value="config_do" />
|
||||||
|
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</fieldset>
|
||||||
|
|
|
@ -14,8 +14,11 @@
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<!-- public subscription and archive -->
|
<!-- list owner address -->
|
||||||
<li><?cs call:checkbox("p") ?></li>
|
<li><?cs call:setting("5") ?></li>
|
||||||
|
|
||||||
|
<!-- set main list name -->
|
||||||
|
<li><?cs call:setting("0") ?></li>
|
||||||
|
|
||||||
<!-- process mailman-style requests -->
|
<!-- process mailman-style requests -->
|
||||||
<li><?cs call:checkbox("q") ?></li>
|
<li><?cs call:checkbox("q") ?></li>
|
||||||
|
@ -23,19 +26,13 @@
|
||||||
<!-- remove ezmlm-warn -->
|
<!-- remove ezmlm-warn -->
|
||||||
<li><?cs call:checkbox("w") ?></li>
|
<li><?cs call:checkbox("w") ?></li>
|
||||||
|
|
||||||
<!-- list owner address -->
|
|
||||||
<li><?cs call:setting("5") ?></li>
|
|
||||||
|
|
||||||
<!-- set main list name -->
|
|
||||||
<li><?cs call:setting("0") ?></li>
|
|
||||||
|
|
||||||
<!-- mysql database -->
|
<!-- mysql database -->
|
||||||
<?cs if:Data.Modules.mySQL ?>
|
<?cs if:Data.Modules.mySQL ?>
|
||||||
<li><?cs call:setting("6") ?></li><?cs /if ?>
|
<li><?cs call:setting("6") ?></li><?cs /if ?>
|
||||||
|
|
||||||
<!-- ezmlm-web administators -->
|
<!-- ezmlm-web administators -->
|
||||||
<?cs if:Data.List.WebUsers ?>
|
<?cs if:Data.List.WebUsers ?>
|
||||||
<li><?cs var:html_escape(Lang.Misc.AllowedToEdit) ?>:
|
<li><?cs var:html_escape(Lang.Misc.AllowedToEdit) ?>
|
||||||
<ul><li><input type="text"
|
<ul><li><input type="text"
|
||||||
name="webusers" value="<?cs var:html_escape(Data.List.WebUsers)
|
name="webusers" value="<?cs var:html_escape(Data.List.WebUsers)
|
||||||
?>" size="40" /><br/>
|
?>" size="40" /><br/>
|
||||||
|
|
|
@ -36,19 +36,19 @@
|
||||||
<!-- message size limit -->
|
<!-- message size limit -->
|
||||||
<li><input type="checkbox" name="msgsize_max_state"
|
<li><input type="checkbox" name="msgsize_max_state"
|
||||||
value="selected" id="msgsize_max_state" <?cs
|
value="selected" id="msgsize_max_state" <?cs
|
||||||
if:Data.List.MsgSize.Max>0 ?>checked="checked"<?cs /if ?>>
|
if:Data.List.MsgSize.Max>0 ?>checked="checked"<?cs /if ?> />
|
||||||
<label for="msgsize_max_state"><?cs var:html_escape(Lang.Misc.MessageSize.Max) ?></label>
|
<label for="msgsize_max_state"><?cs var:html_escape(Lang.Misc.MessageSize.Max) ?></label>
|
||||||
<ul><li><input type="text" name="msgsize_max_value" size="10"
|
<ul><li><input type="text" name="msgsize_max_value" size="10"
|
||||||
style="text-align:right" value="<?cs
|
style="text-align:right" value="<?cs
|
||||||
alt:Data.List.MsgSize.Max ?>30000<?cs /alt ?>"> <?cs
|
alt:Data.List.MsgSize.Max ?>30000<?cs /alt ?>" /> <?cs
|
||||||
var:html_escape(Lang.Misc.MessageSize.Unit) ?></li></ul></li>
|
var:html_escape(Lang.Misc.MessageSize.Unit) ?></li></ul></li>
|
||||||
<li><input type="checkbox" name="msgsize_min_state"
|
<li><input type="checkbox" name="msgsize_min_state"
|
||||||
value="selected" id="msgsize_min_state" <?cs
|
value="selected" id="msgsize_min_state" <?cs
|
||||||
if:Data.List.MsgSize.Min>0 ?>checked="checked"<?cs /if ?>>
|
if:Data.List.MsgSize.Min>0 ?>checked="checked"<?cs /if ?> />
|
||||||
<label for="msgsize_min_state"><?cs var:html_escape(Lang.Misc.MessageSize.Min) ?></label>
|
<label for="msgsize_min_state"><?cs var:html_escape(Lang.Misc.MessageSize.Min) ?></label>
|
||||||
<ul><li><input type="text" name="msgsize_min_value" size="10"
|
<ul><li><input type="text" name="msgsize_min_value" size="10"
|
||||||
style="text-align:right" value="<?cs
|
style="text-align:right" value="<?cs
|
||||||
alt:Data.List.MsgSize.Min ?>2<?cs /alt ?>"> <?cs
|
alt:Data.List.MsgSize.Min ?>2<?cs /alt ?>" /> <?cs
|
||||||
var:html_escape(Lang.Misc.MessageSize.Unit) ?></li></ul></li>
|
var:html_escape(Lang.Misc.MessageSize.Unit) ?></li></ul></li>
|
||||||
|
|
||||||
<!-- mimeremove and mimereject -->
|
<!-- mimeremove and mimereject -->
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
<!-- trailing text -->
|
<!-- trailing text -->
|
||||||
<li><?cs call:checkbox("t") ?>
|
<li><?cs call:checkbox("t") ?>
|
||||||
<?cs if:(Data.List.Options.t == 1) ?><ul>
|
<?cs if:(Data.List.Options.t == 1) ?>
|
||||||
<!-- turn off mimermove, if "-x" is not activated, as it will be
|
<!-- turn off mimermove, if "-x" is not activated, as it will be
|
||||||
removed during the next config_update -->
|
removed during the next config_update -->
|
||||||
<ul><li><textarea name="trailing_text" rows="3" cols="72"><?cs
|
<ul><li><textarea name="trailing_text" rows="3" cols="72"><?cs
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
<?cs if:Data.WebUser.show ?>
|
<?cs if:Data.WebUser.show ?>
|
||||||
<li><label for="webusers"><?cs var:html_escape(Lang.Misc.AllowedToEdit) ?>:</label>
|
<li><label for="webusers"><?cs var:html_escape(Lang.Misc.AllowedToEdit) ?></label>
|
||||||
<ul><li><input type="text" id="webusers"
|
<ul><li><input type="text" id="webusers"
|
||||||
name="webusers" size="30" value="<?cs
|
name="webusers" size="30" value="<?cs
|
||||||
var:html_escape(Data.WebUser.UserName) ?>"></li></ul></li>
|
var:html_escape(Data.WebUser.UserName) ?>"></li></ul></li>
|
||||||
|
|
|
@ -50,6 +50,8 @@
|
||||||
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=config_ask&config_subset=archive" title="<?cs var:html_escape(Lang.Menue.ConfigArchive) ?>"><?cs var:html_escape(Lang.Menue.ConfigArchive) ?></a></li>
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=config_ask&config_subset=archive" title="<?cs var:html_escape(Lang.Menue.ConfigArchive) ?>"><?cs var:html_escape(Lang.Menue.ConfigArchive) ?></a></li>
|
||||||
<li><a <?cs if:(Data.Action == "config_admin") ?> class="nav_active"<?cs /if ?>
|
<li><a <?cs if:(Data.Action == "config_admin") ?> class="nav_active"<?cs /if ?>
|
||||||
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=config_ask&config_subset=admin" title="<?cs var:html_escape(Lang.Menue.ConfigAdmin) ?>"><?cs var:html_escape(Lang.Menue.ConfigAdmin) ?></a></li>
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=config_ask&config_subset=admin" title="<?cs var:html_escape(Lang.Menue.ConfigAdmin) ?>"><?cs var:html_escape(Lang.Menue.ConfigAdmin) ?></a></li>
|
||||||
|
<li><a <?cs if:(Data.Action == "config_all") ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=config_ask&config_subset=all" title="<?cs var:html_escape(Lang.Menue.ConfigAll) ?>"><?cs var:html_escape(Lang.Menue.ConfigAll) ?></a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
|
|
||||||
<li><a <?cs if:((Data.Action == "textfiles") || (Data.Action == "textfile_edit")) ?> class="nav_active"<?cs /if ?>
|
<li><a <?cs if:((Data.Action == "textfiles") || (Data.Action == "textfile_edit")) ?> class="nav_active"<?cs /if ?>
|
||||||
|
|
|
@ -49,6 +49,8 @@
|
||||||
<li><!-- include default form values -->
|
<li><!-- include default form values -->
|
||||||
<?cs include:TemplateDir + '/form_common.cs' ?>
|
<?cs include:TemplateDir + '/form_common.cs' ?>
|
||||||
|
|
||||||
|
<input type="hidden" name="config_subset" value="RESERVED-subscribers" />
|
||||||
|
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
|
||||||
<input type="hidden" name="action" value="config_do" />
|
<input type="hidden" name="action" value="config_do" />
|
||||||
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button></li>
|
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -93,7 +95,7 @@
|
||||||
<li><select name="mailaddress_del"
|
<li><select name="mailaddress_del"
|
||||||
size="<?cs var:Data.ScrollSize ?>" multiple="multiple">
|
size="<?cs var:Data.ScrollSize ?>" multiple="multiple">
|
||||||
<?cs each:item = Data.List.Subscribers ?>
|
<?cs each:item = Data.List.Subscribers ?>
|
||||||
<option><?cs var:item ?></option>
|
<option value="<?cs var:item.address ?>"><?cs var:item.address ?><?cs if:item.name ?> (<?cs var:item.name ?>)<?cs /if ?></option>
|
||||||
<?cs /each ?>
|
<?cs /each ?>
|
||||||
</select></li>
|
</select></li>
|
||||||
<li><?cs var:subcount(Data.List.Subscribers) ?> <?cs var:html_escape(Lang.Misc.Subscribers) ?></li>
|
<li><?cs var:subcount(Data.List.Subscribers) ?> <?cs var:html_escape(Lang.Misc.Subscribers) ?></li>
|
||||||
|
|
Loading…
Reference in a new issue