new release 3.0
This commit is contained in:
parent
b5e33ed9e7
commit
e4763bc1fb
36 changed files with 3785 additions and 0 deletions
105
ezmlm-web-3.0/CHANGES
Normal file
105
ezmlm-web-3.0/CHANGES
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
REVISION HISTORY - ezmlm-web.cgi
|
||||||
|
================================
|
||||||
|
|
||||||
|
Version 0.1 - 10/04/98 (Not Released)
|
||||||
|
* University Vac - I was bored and started to play. The first version just
|
||||||
|
let people play with the subscribers list. No moderators, no nothing.
|
||||||
|
|
||||||
|
Version 0.2 - 13/04/98 (Not Released)
|
||||||
|
* Allow list creation
|
||||||
|
* Allowed users to edit moderators
|
||||||
|
|
||||||
|
Version 0.3 - 15/04/98
|
||||||
|
* Allow list deletion (for balin@moria.org)
|
||||||
|
* Made changes to allow it to run on RedHat 4.2 as well as FreeBSD 3.0
|
||||||
|
* Fixed some minor bugs (cosmetic irritaions really) that people noticed
|
||||||
|
* Sorted subscribers list into alphabetical order.
|
||||||
|
* Added command line switch to change list directory (for nxsy@moria.org)
|
||||||
|
* Wrote some documentation ...
|
||||||
|
|
||||||
|
Version 0.4 - 28/04/98
|
||||||
|
* Fixed up virtual domain (inlocal) stuff as spotted by bryan@rucus
|
||||||
|
* Allowed the list directory to be automatically created if necessary.
|
||||||
|
|
||||||
|
Version 0.5 - 12/05/98 (Not Released)
|
||||||
|
* More bug fixes. Mainly for mathew@graham.
|
||||||
|
|
||||||
|
Version 1.0 - 01/08/98
|
||||||
|
* Complete re-write to convert to perl5 and CGI.pm
|
||||||
|
* Removed a lot of dependancy on the OS. Use builtin functions instead :)
|
||||||
|
* Added support for ezmlm-idx
|
||||||
|
* Added a lot more command line option support (-adfgiklmnpqsrstux5)
|
||||||
|
* Added support for digests and digest subscribers
|
||||||
|
* Added support for blacklists
|
||||||
|
* Allowed users to edit the config of existing lists
|
||||||
|
* Allowed the user to edit headeradd and headerremove as well as mimeremove
|
||||||
|
* Allowed user to edit any of the files in DIR/text
|
||||||
|
* Revised interface to make it more user-friendly and ergonomic.
|
||||||
|
* Changed the background colour for Kether (clb@rucus) *gryn*
|
||||||
|
* Removed a big bug in the delete_list function that had gone unnoticed.
|
||||||
|
|
||||||
|
Version 1.0.1 - 10/08/98
|
||||||
|
* Fixed a bug in the way 1.0 re-configured virtual hosts (bryan@rucus)
|
||||||
|
* Made the script read the /var/qmail/control files instead of explicitly
|
||||||
|
setting variables (for david@summersoft)
|
||||||
|
|
||||||
|
Version 1.0.2 - 28/08/98
|
||||||
|
* Fixed the bug introduced in v1.0.1 :( (keith@rucus)
|
||||||
|
* Fixed the way we recreate config files (noticed by Glen Stewart)
|
||||||
|
* Made the script check return values of system calls properly
|
||||||
|
* Fixed some of the taint checking stuff ... reports less in the logs now.
|
||||||
|
|
||||||
|
Version 1.0.3 - 03/10/98
|
||||||
|
* Fixed the alias-alias-alias-list bug in inlocal (bryan@rucus)
|
||||||
|
* Added a bit of online help
|
||||||
|
* Fixed the & in list owner (bryan@rucus)
|
||||||
|
* Added multi-level access to lists (based on idea by Glen Stewart)
|
||||||
|
|
||||||
|
Version 2.0 - 01/01/00
|
||||||
|
* Rewrote most of the code to take advantage of Mail::Ezmlm
|
||||||
|
* Made the webuser file more functional (users can alter it)
|
||||||
|
* Now handles all current, and future command line options
|
||||||
|
* Changed the colours :)
|
||||||
|
* Added support for ezmlm-cgi web archives
|
||||||
|
* Made it -w and use strict clean
|
||||||
|
* Moved all user config to a separate file
|
||||||
|
* Fixed the way we worked out list config - now complete
|
||||||
|
* Allowed a user specific config over-ride ``ezmlmwebrc''
|
||||||
|
* Allowed the printing of `nice' usernames (for Rhodes CS Dept)
|
||||||
|
* Took account of non-standard paths for moderators
|
||||||
|
* Removed all system() and `` calls from ezmlm-web.cgi
|
||||||
|
* Made `look and feel' virtually all user configurable
|
||||||
|
* Added a lot more context sensitive help
|
||||||
|
* Made ezmlm-web 99% language configurable - but no other templates yet :(
|
||||||
|
* Added support for creating databases
|
||||||
|
|
||||||
|
Version 2.1 - 25/09/00
|
||||||
|
* Fixed the multiple delete thing - finally!
|
||||||
|
* Fixed the '-' in username problem - The '-' in hostnames problem is fixed
|
||||||
|
in the new version of Mail::Ezmlm
|
||||||
|
* Fixed the '_' in list names problem
|
||||||
|
* Added support for file uploads of email addresses (multiple subscribe)
|
||||||
|
* Made error handling more friendly
|
||||||
|
|
||||||
|
Version 2.2 - 26/01/02005 (not officially released)
|
||||||
|
* German translation of the web interface - more translations can be added easily
|
||||||
|
* changed "ALT"-tags to "TITLE" - most browsers will display the tooltip texts now
|
||||||
|
* fixed security problems (permissions were not thoroughly checked)
|
||||||
|
* user-based permission for creating lists (can be set in webusersrc)
|
||||||
|
* the location of the webusers file is now an option in ezmlmwebrc
|
||||||
|
|
||||||
|
Version 2.3 - 10/06/02005
|
||||||
|
* css styles are used instead of tables
|
||||||
|
* permission check for upload of files fixed
|
||||||
|
* removed some taint errors
|
||||||
|
* file upload typo fixed
|
||||||
|
* update of webusers file fixed
|
||||||
|
* moderator unsubscribe fixed
|
||||||
|
|
||||||
|
Version 3.0 - 12/21/02005
|
||||||
|
* complete interface is rewritten
|
||||||
|
* fixed insecure writing of webusers data
|
||||||
|
* commas are not necessary anymore in webusers file
|
||||||
|
* support for MAIL_DOMAIN config setting
|
||||||
|
* requires the clearsilver template engine
|
||||||
|
|
151
ezmlm-web-3.0/INSTALL
Normal file
151
ezmlm-web-3.0/INSTALL
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
The following notes will guide you through the installation of ezmlm-web:
|
||||||
|
|
||||||
|
OVERVIEW:
|
||||||
|
0 - important notes
|
||||||
|
1 - get it
|
||||||
|
2 - install executable
|
||||||
|
3 - configuration file
|
||||||
|
4 - compile cgi wrapper
|
||||||
|
5 - install cgi wrapper
|
||||||
|
6 - (optional) configure access control (http authentication)
|
||||||
|
7 - final test
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
0. IMPORTANT: you need the perl module Mail::Ezmlm and others to use
|
||||||
|
ezmlm-web! The file README contains the complete list of necessary
|
||||||
|
modules.
|
||||||
|
|
||||||
|
Additionally (since v3.0) you have to install clearsilver (a templating
|
||||||
|
engine). You can download it from http://clearsilver.net.
|
||||||
|
The following configure options should work well:
|
||||||
|
./configure --enable-perl \
|
||||||
|
--disable-python \
|
||||||
|
--disable-ruby \
|
||||||
|
--disable-java \
|
||||||
|
--disable-csharp \
|
||||||
|
--disable-apache \
|
||||||
|
--disable-gettext \
|
||||||
|
--disable-remote-debugger
|
||||||
|
|
||||||
|
|
||||||
|
1. Get ezmlm-web and extract the archive:
|
||||||
|
tar xzf ezmlm-web-3.x.tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
2. Copy ezmlm-web.cgi to some publically readable directory. It does not
|
||||||
|
have to be in a path accessible to your web server, but any user with a
|
||||||
|
mailing list must be able to run it (Check the read and execute rights
|
||||||
|
on both the file and directory). We put our copy in "/usr/local/bin".
|
||||||
|
|
||||||
|
At the top of ezmlm-web.cgi you can will probably have to change the
|
||||||
|
$ENV{'PATH'} variable. Be careful about what you set as the path. Too
|
||||||
|
much is a security risk and too little will cause the script to
|
||||||
|
malfunction. Version 2.0 requires that the following programs be
|
||||||
|
accessible in your path: mv, rm
|
||||||
|
|
||||||
|
|
||||||
|
3. Edit the ezmlmwebrc file and alter the variables to suit your
|
||||||
|
particular system.
|
||||||
|
|
||||||
|
Be careful about the $LIST_DIR variable. This script assumes that all
|
||||||
|
users store their mailing lists in the same sub directory of the home
|
||||||
|
directory (eg ~/lists). You can override this for an individual user
|
||||||
|
by recompiling the C wrapper to call ezmlm-web.cgi with a -d option.
|
||||||
|
|
||||||
|
Other configurable options are documented in the ezmlmwebrc file
|
||||||
|
itself. I have tried to keep the amount of information that you need to
|
||||||
|
supply to a minimum and also make reasonable guesses about default
|
||||||
|
values.
|
||||||
|
|
||||||
|
The directory containing ezmlm-web's language files should be something
|
||||||
|
like '/usr/local/share/ezmlm-web/lang':
|
||||||
|
mkdir -p /usr/local/share/ezmlm-web
|
||||||
|
cp -r lang /usr/local/share/ezmlm-web
|
||||||
|
You can change this default location in the ezmlmwebrc file.
|
||||||
|
Do the same with the template directory (e.g copy it
|
||||||
|
to /usr/local/share/ezmlm-web/template). Then you also have to
|
||||||
|
set the appropriate location in the ezmlmwebrc file.
|
||||||
|
|
||||||
|
Finally, copy the ezmlmwebrc file to one of
|
||||||
|
the following places:
|
||||||
|
1) /etc/ezmlm
|
||||||
|
2) the home directory of the user that runs ezmlm-web.cgi
|
||||||
|
3) the directory, that contains your ezmlm-web.cgi file
|
||||||
|
(ezmlm-web will look for it in these places in the given order)
|
||||||
|
|
||||||
|
|
||||||
|
4. Edit the index.c file and change the path to the path of your copy
|
||||||
|
of ezmlm-web.cgi. Then compile this file. You can do this by issuing
|
||||||
|
this command:
|
||||||
|
gcc -o index.cgi index.c
|
||||||
|
|
||||||
|
|
||||||
|
5. For every user/virtual host that needs to manage mailing lists, you
|
||||||
|
need to create a SUID (user not root!!) copy of index.cgi (see
|
||||||
|
chmod(1) for details). These need to reside somewhere accessible by
|
||||||
|
the web server. I suggest that you put them in a sub directory (see
|
||||||
|
about security) of each user/virtual host's home directory (eg
|
||||||
|
/home/luser/public_html/ezmlm for Apache on Redhat).
|
||||||
|
|
||||||
|
The copies don't actually have to be called index.cgi, but it is nice
|
||||||
|
for web servers that can resolve a cgi script as an index page (see the
|
||||||
|
srm.conf file in Apache). It is important to make sure that whichever
|
||||||
|
directory you choose to put them can i: Execute CGI Scripts and ii: Be
|
||||||
|
access controlled (here I mean both web and user access) by some method
|
||||||
|
(eg .htaccess, access.conf for Apache).
|
||||||
|
|
||||||
|
You should also copy the stylesheet file (css/default.css) to a location
|
||||||
|
of your choice. Now you may have to change the "HTML_CSS_FILE" setting
|
||||||
|
in your ezmlmwebrc file.
|
||||||
|
|
||||||
|
|
||||||
|
6. Install some method of securing access to the page. The following
|
||||||
|
information is applicable to Apache web servers ... Detailed
|
||||||
|
information on user authentication can be obtained from the Apache
|
||||||
|
documentation (http://www.apache.org) and ApacheWeek
|
||||||
|
(http://www.apacheweek.com/features/userauth)
|
||||||
|
|
||||||
|
6.1 Ensure that your Apache setup will allow .htaccess file to control
|
||||||
|
access in the directory that contains. This is controlled by the
|
||||||
|
AllowOverride tag in access.conf. (Also ensure you have the
|
||||||
|
necessary Apache modules installed)
|
||||||
|
|
||||||
|
6.2 Create a htpasswd file. This is done using the htpasswd command that
|
||||||
|
comes with Apache. Its command line syntax is;
|
||||||
|
htpasswd [-c] passwordfile username
|
||||||
|
|
||||||
|
You need to put the passwordfile somewhere that is not accessible by
|
||||||
|
people through the web, and create an entry for each user you want
|
||||||
|
to have access ... See the ApacheWeek article for more details.
|
||||||
|
|
||||||
|
6.3 Create a .htaccess file in the directory that contains index.cgi.
|
||||||
|
Note that using Apache's built in access control, you can only control
|
||||||
|
access to directories, not individual files, hence the need for a
|
||||||
|
sub-directory in step 5.
|
||||||
|
|
||||||
|
The format of the .htaccess file should be along the lines of this;
|
||||||
|
|
||||||
|
AuthName EZ Mailing List Manager
|
||||||
|
AuthType Basic
|
||||||
|
AuthUserFile /path/to/passwordfile
|
||||||
|
require valid-user # or require user username
|
||||||
|
|
||||||
|
Again, see the ApacheWeek article for details.
|
||||||
|
|
||||||
|
|
||||||
|
7. Test the installation with your favourite web browser. You should be
|
||||||
|
asked for a username and password (supplied in 6.2) and then be presented
|
||||||
|
with a screen entitled "EZ Mailing List Manger". You can then try to
|
||||||
|
create and edit mailing lists ... Have Fun :)
|
||||||
|
|
||||||
|
If anything failes - take a look at the web server's error log
|
||||||
|
(e.g /var/log/apache/error.log).
|
||||||
|
|
||||||
|
|
||||||
|
If you have any problems, then you can:
|
||||||
|
- take a look at https://systemausfall.org/toolforge/ezmlm-web
|
||||||
|
- send me an email: ezmlm-web@sumpfralle.de
|
||||||
|
- subscribe to the mailinglist: ezmlm-web-subscribe@lists.systemausfall.org
|
293
ezmlm-web-3.0/README
Normal file
293
ezmlm-web-3.0/README
Normal file
|
@ -0,0 +1,293 @@
|
||||||
|
=================
|
||||||
|
| ezmlm-web-3.0 |
|
||||||
|
=================
|
||||||
|
|
||||||
|
If you only want to know how to install ezmlm-web, then you should
|
||||||
|
read INSTALL.
|
||||||
|
|
||||||
|
Contents
|
||||||
|
========
|
||||||
|
I. Copyright Stuff
|
||||||
|
II. Some Background
|
||||||
|
III. Requirements
|
||||||
|
IV. Files
|
||||||
|
V. Notes
|
||||||
|
VI. Multi-level list access
|
||||||
|
VII. Language Portability
|
||||||
|
VIII. Bugs && Bug Reports
|
||||||
|
XI. Acknowledgements
|
||||||
|
X. Availability
|
||||||
|
|
||||||
|
|
||||||
|
I. Copyright Stuff - essentially the FreeBSD licence ...
|
||||||
|
==================
|
||||||
|
ezmlm-web - version 3.0 - 12/22/02005
|
||||||
|
|
||||||
|
Copyright (C) 1998, Guy Antony Halse, All Rights Reserved.
|
||||||
|
|
||||||
|
Please send bug reports and comments to ezmlm-web@sumpfralle.de
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
Neither name Guy Antony Halse nor the names of any contributors may be used
|
||||||
|
to endorse or promote products derived from this software without specific
|
||||||
|
prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
|
||||||
|
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
|
II. Some Background
|
||||||
|
===================
|
||||||
|
[this text was written by Guy Antony Halse - the original author of ezmlm-web]
|
||||||
|
The need for ezmlm-web arose from the fact that we host many student
|
||||||
|
societies on our system. These societies usually have a virtual host for web
|
||||||
|
and email, which is administered by a computer rep from the society. These
|
||||||
|
computer reps often have little or no knowledge of Unix and so we needed a
|
||||||
|
user friendly system that would let the create and maintain mailing lists
|
||||||
|
(such as members@foo.soc.ru.ac.za, committee@foo.soc.ru.ac.za, etc).
|
||||||
|
|
||||||
|
Since I am never keen to re-invent the wheel, I had a look at Steve Peterson's
|
||||||
|
script (http://virtation.com/qmail/ml-sub), which allows people to subscribe
|
||||||
|
and unsubscribe from mailing lists using a form->email gateway. This is fine
|
||||||
|
for putting on a web page saying "here come and join our mailing list", but
|
||||||
|
doesn't really allow you to administrate a list.
|
||||||
|
|
||||||
|
Security of mailing lists was a concern, as we really didn't want
|
||||||
|
unauthorised people to be able to alter some users list. Ezmlm-web itself
|
||||||
|
implements no security checks (apart from un-tainting input) and so relies
|
||||||
|
on the web server to do this (re-inventing the wheel again :). We use an
|
||||||
|
Apache webserver, so one can control access to a directory using a .htaccess
|
||||||
|
file or in the access.conf file. ApacheWeek have a good article on doing
|
||||||
|
this at http://www.apacheweek.com/features/userauth. I also give examples
|
||||||
|
later in this document.
|
||||||
|
|
||||||
|
This version of ezmlm-web is based to a large extent on previous
|
||||||
|
versions that I have developed. It has however been totally re-written to
|
||||||
|
make use of the Mail::Ezmlm perl module I wrote. At the same time it was
|
||||||
|
updated and extended to include the new features of ezmlm-idx. It includes
|
||||||
|
many new features that have been suggested to me over the last few months,
|
||||||
|
and hopefully is now useful to a much larger group of people.
|
||||||
|
|
||||||
|
Since 02005 ezmlm-web is maintained by Lars Kruse (ezmlm-web@sumpfralle.de).
|
||||||
|
Only minor improvements had to be implemented to keep the already fully
|
||||||
|
functional ezmlm-web up to date.
|
||||||
|
|
||||||
|
|
||||||
|
III. Requirements
|
||||||
|
=================
|
||||||
|
This version of ezmlm-web requires the following;
|
||||||
|
|
||||||
|
* qmail v1.03
|
||||||
|
* ezmlm v0.53 (or ezmlm-idx v0.40)
|
||||||
|
* clearsilver v0.9.14 (only perl support is necessary)
|
||||||
|
* Perl v5.004 and the following modules;
|
||||||
|
+ Mail::Ezmlm v0.03
|
||||||
|
+ Mail::Address v1.15
|
||||||
|
+ CGI v2.6
|
||||||
|
+ CGI::Carp v1.06
|
||||||
|
+ DB_File v1.65
|
||||||
|
+ Getopt::Std v4.1
|
||||||
|
+ File::Find v?
|
||||||
|
+ File::Copy v2.02
|
||||||
|
|
||||||
|
The version number indicates the version of the module that ezmlm-web was
|
||||||
|
developed with. Earlier versions may work, but then they haven't been
|
||||||
|
tested. Have a look on http://www.CPAN.org/, http://www.qmail.org/, and
|
||||||
|
http://www.ezmlm.org/ for anything you are missing. Of course, newer
|
||||||
|
versions are expected to work as well.
|
||||||
|
|
||||||
|
To install perl modules you may use the cpan command line interface.
|
||||||
|
Just run "cpan" and type something like "install Mail::Ezmlm".
|
||||||
|
|
||||||
|
You can download clearsilver (a templating engine - it is required since
|
||||||
|
ezmlm-web v3.0) from http://clearsilver.net.
|
||||||
|
|
||||||
|
|
||||||
|
IV. Files
|
||||||
|
=========
|
||||||
|
In this distribution you should find eight files;
|
||||||
|
|
||||||
|
README This file. Provides some background information.
|
||||||
|
Not needed to run ezmlm-web.
|
||||||
|
|
||||||
|
INSTALL Notes on installation. Not needed to run ezmlm-web.
|
||||||
|
|
||||||
|
CHANGES The change history. Not needed to run ezmlm-web
|
||||||
|
|
||||||
|
TODO This file is a list of things I intend doing in future
|
||||||
|
versions of ezmlm-web. Not needed to run ezmlm-web.
|
||||||
|
|
||||||
|
ezmlm-web.cgi The ezmlm-web script proper. This program requires that
|
||||||
|
you have perl5 installed on your machine and that your web
|
||||||
|
server is capable of running CGI scripts.
|
||||||
|
|
||||||
|
index.c A C wrapper to allow ezmlm-web.cgi to run suid. Not
|
||||||
|
strictly necessary if your setup allows perl scripts to
|
||||||
|
run suid, but I prefer using wrappers anyway. It needs to
|
||||||
|
be edited and compiled to suit your system. Not needed to
|
||||||
|
run ezmlm-web.
|
||||||
|
|
||||||
|
ezmlmwebrc This is the configuration file for ezmlm-web. All options
|
||||||
|
are explained in this example file. You will need this
|
||||||
|
file to run ezmlm-web.
|
||||||
|
|
||||||
|
htaccess.sample A sample Apache .htaccess file for controlling access to
|
||||||
|
the mailing lists. If you use another web server, you will
|
||||||
|
have to work this bit out for yourself.
|
||||||
|
|
||||||
|
webusers.sample A sample webusers file for multi-level access control.
|
||||||
|
|
||||||
|
The directory "lang" contains the language files. You will need at least the
|
||||||
|
one, that you have choosen in "ezmlmwebrc" by the option "HTML_LANGUAGE".
|
||||||
|
|
||||||
|
|
||||||
|
V. Notes
|
||||||
|
=========
|
||||||
|
* There is a function to delete mailing lists, but I really don't like the
|
||||||
|
idea. The only reason I put it in is that bvi@rucus asked for it.
|
||||||
|
If you set $UNSAFE_RD = 0 (the default) in the config section, the
|
||||||
|
ezmlm-web won't actually delete the list. In this case it moves the <list>
|
||||||
|
to .<list> and all the associated .qmail files to a sub-directory called
|
||||||
|
deleted.qmail/ (In the users home directory. This is by far a safer way
|
||||||
|
(since you can restore lists) and therefore I recommend it.
|
||||||
|
|
||||||
|
* The HTML interface has been tested using Nutscrape, Internet Exploder, and
|
||||||
|
Lynx. If anyone uses anything else and has problems, please let me know.
|
||||||
|
|
||||||
|
* I suggest that you make use of custom ezmlmwebrc files rather than using
|
||||||
|
the -d command line switches - it makes fault diagnosis easier ...
|
||||||
|
|
||||||
|
* Please see the section on languages below.
|
||||||
|
|
||||||
|
|
||||||
|
VI. Multi-Level Access
|
||||||
|
=======================
|
||||||
|
Ezmlm-web has a multi-level access system. This depends on a file called
|
||||||
|
webusers being present in $LIST_DIR. If the file is not present, then ANY
|
||||||
|
valid user has access to all lists. If, however, this file exists a number
|
||||||
|
of constraints come into place.
|
||||||
|
|
||||||
|
- The webusers file is scanned for either the list name (case insensitive) or
|
||||||
|
an ALL (case sensitive) entry.
|
||||||
|
- The list entry (or ALL) is scanned for the current user (as set in
|
||||||
|
$REMOTE_USER) or an ALL entry.
|
||||||
|
- If any valid match is made, then the user is allowed to edit the list.
|
||||||
|
Otherwise the user is politely told to go away ;-)
|
||||||
|
|
||||||
|
If list creation is allowed and the webusers file exists, then the person who
|
||||||
|
creates the list is the default owner. As of yet there is no way to create users
|
||||||
|
through the web interface, but I intend to do this eventually.
|
||||||
|
|
||||||
|
The format of a webusers file is as follows;
|
||||||
|
|
||||||
|
list1: user1, user2, user3
|
||||||
|
ALL: user1, user2
|
||||||
|
list2: ALL
|
||||||
|
|
||||||
|
ie; listname colon (:) and a comma (,) separated list of users. Spaces are
|
||||||
|
ignored but each list must appear on a new line.
|
||||||
|
|
||||||
|
Once this file exists, the ezmlm-web script will allow the list users to
|
||||||
|
configure their access lists along with any other options.
|
||||||
|
|
||||||
|
You can permit some users to create lists by adding a line similar to the
|
||||||
|
following to your webusers file:
|
||||||
|
|
||||||
|
ALLOW_CREATE: user2, user3
|
||||||
|
|
||||||
|
If there is no line starting with "ALLOW_CREATE:" in the webusers file, then
|
||||||
|
no one will be allowed to create lists. This behaviour is new for ezmlm-web
|
||||||
|
since version 2.2. To stay compatible to old installations, the commandline
|
||||||
|
option "-c" for ezmlm-web.cgi will still allow everyone to create lists. The
|
||||||
|
use of this option is deprecated, since the line "ALLOW_CREATE: ALL" provides
|
||||||
|
the same effect in a cleaner way.
|
||||||
|
|
||||||
|
|
||||||
|
VII. Language Portablity
|
||||||
|
=========================
|
||||||
|
One of the great new features of version 2.0 is that it is essentially
|
||||||
|
language independant (okay, not quite, but is 99% of the way there). Most of
|
||||||
|
the fixed strings, help, etc is defined in the files of lang directory.
|
||||||
|
Of course you can change them or create a new translation.
|
||||||
|
|
||||||
|
The language can be selected in ezmlmwebrc with the "HTML_LANGUAGE" option.
|
||||||
|
|
||||||
|
If anyone gets round to writing full templates for languages I would
|
||||||
|
appreciate it if you would do two things;
|
||||||
|
|
||||||
|
Firstly, make them public and announce them on the ezmlm@lists.cr.yp.to
|
||||||
|
mailing list so that others may benefit.
|
||||||
|
|
||||||
|
Secondly, please mail me a copy (ezmlm-web@sumpfralle.de) so that I may use
|
||||||
|
them in any future releases of ezmlm-web.
|
||||||
|
|
||||||
|
|
||||||
|
VIII. Bugs && Bug Reports
|
||||||
|
=======================
|
||||||
|
I don't know of any bugs, but then this is a rewrite and a first release. It
|
||||||
|
has been tested reasonably well, but not exhaustively. I know it works on
|
||||||
|
FreeBSD 4.0-STABLE, FreeBSD 3.4-RELEASE, RedHat 5.1, Redhat 6.0 and Debian
|
||||||
|
3.0 all using an Apache web server, but I would be interested to know whether
|
||||||
|
it works on other OSs and with other web servers.
|
||||||
|
|
||||||
|
Please mail bug reports and comments to ezmlm-web@sumpfralle.de.
|
||||||
|
Or (even better) submit a bug report at https://systemausfall.org/trac/ezmlm-web.
|
||||||
|
Or subscribe to the ezmlm-web mailinglist: ezmlm-web-subscribe@lists.systemausfall.org.
|
||||||
|
|
||||||
|
|
||||||
|
IX. Acknowledgements
|
||||||
|
===================
|
||||||
|
* Guy Antony Halse (guy-ezmlm@rucus.ru.ac.za) - he created ezmlm-web
|
||||||
|
and maintained it till 02005
|
||||||
|
* Keith Burdis (keith@rucus.ru.ac.za) - For constantly bugging me (Guy) and
|
||||||
|
ensuring that I actually got round to writing some code :)
|
||||||
|
* Bryan Kilian (bryan@rucus.ru.ac.za) and the administrators of the
|
||||||
|
Litestep mailing list - For helping beta test and putting up with me (Guy)
|
||||||
|
pestering them.
|
||||||
|
* Several societies at Rhodes. For switching to my web interface and so
|
||||||
|
unknowingly helping to beta test it.
|
||||||
|
* Barry Irwin (bvi@moria.org) - For trusting me (Guy) and moving the Grahamstown
|
||||||
|
Foundation over to qmail and ezmlm - yet another beta tester :-)
|
||||||
|
* David Summers (david@summersoft.fay.ar.us) - For some ideas. And for
|
||||||
|
offering to make up an RPM version. I hope the offer still exists for
|
||||||
|
version 2.0 :-)
|
||||||
|
* Glen Stewart (glen_stewart@associate.com) - For a multitude of ideas.
|
||||||
|
* Fred Lindberg (lindberg@id.wustl.edu) for his useful posts to the
|
||||||
|
mailing list, suggestions, help, etc
|
||||||
|
* Galen Johnson (gjohnson@totalsports.net) - For some ideas on bugfixes.
|
||||||
|
* Reinin Ooyama (lenin@hasiru.net) - a japanese translation and bugixes for v2.3
|
||||||
|
* Henning Rieger (age@systemausfall.org) - he designed most of the new
|
||||||
|
interface for v3.0
|
||||||
|
|
||||||
|
|
||||||
|
X. Availability
|
||||||
|
=================
|
||||||
|
More information on ezmlm-web and developments to ezmlm-web can be found at:
|
||||||
|
https://systemausfall.org/toolforge/ezmlm-web
|
||||||
|
|
||||||
|
The public subversion repository is at:
|
||||||
|
https://svn.systemausfall.org/svn/ezmlm-web
|
||||||
|
|
||||||
|
The website of Guy Antony Halse (the author of ezmlm-web) is still at:
|
||||||
|
http://rucus.ru.ac.za/~guy/ezmlm/
|
||||||
|
|
||||||
|
The old ftp-archive of ezmlm-web is still available on:
|
||||||
|
ftp://rucus.ru.ac.za/pub/mail/ezmlm/
|
10
ezmlm-web-3.0/TODO
Normal file
10
ezmlm-web-3.0/TODO
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
restore user input after failed list_create (especially options)
|
||||||
|
|
||||||
|
support for:
|
||||||
|
* charset
|
||||||
|
* show log
|
||||||
|
|
||||||
|
split filter and manipulate
|
||||||
|
|
||||||
|
allow dynamic addition of user-made config templates (seperate directory, ...)
|
||||||
|
|
56
ezmlm-web-3.0/UPGRADING
Normal file
56
ezmlm-web-3.0/UPGRADING
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
This file contains some useful hints for upgrading from a previous version of ezmlm-web.
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
UPGRADING ezmlm-web 2.3 to ezmlm-web 3.0
|
||||||
|
|
||||||
|
1) install clearsilver (see INSTALL for details)
|
||||||
|
2) copy the "template" directory somewhere (see INSTALL again)
|
||||||
|
3) set "TEMPLATE_DIR" in your ezmlmwebrc file to this directory
|
||||||
|
4) maybe you want to define "MAIL_DOMAIN" in your ezmlmwebrc
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
UPGRADING ezmlm-web 2.2 to ezmlm-web 2.3
|
||||||
|
|
||||||
|
there are no known issues
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
UPGRADING ezmlm-web 2.1 to ezmlm-web 2.2
|
||||||
|
|
||||||
|
1) Creating of new lists is now controlled by a line in the webusers file instead
|
||||||
|
of a commandline switch for ezmlm-web.cgi.
|
||||||
|
|
||||||
|
necessary changes:
|
||||||
|
- optional: remove switch "-c" when calling ezmlm-web.cgi (take a look at index.c)
|
||||||
|
- optional: add a line like "ALLOW_CREATE: john, myra" to the webusers file
|
||||||
|
|
||||||
|
2) The location of the webusers file is now defined in ezmlmwebrc. (default: $LIST_DIR/webusers)
|
||||||
|
|
||||||
|
necessary changes:
|
||||||
|
- optional: add a line like "$WEBUSERS_FILE = /home/ml/webusers" to ezmlmwebrc
|
||||||
|
|
||||||
|
3) A german translation is available.
|
||||||
|
|
||||||
|
- optional: include "lang/de.pm" in ezmlmwebrc (there you can also remove the english definitions)
|
||||||
|
or copy the new ezmlmwebrc :)
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
UPGRADING ezmlm-web 2.0 to ezmlm-web 2.1
|
||||||
|
|
||||||
|
There are no major changes that need to be made in order to upgrade. All
|
||||||
|
that is necessary is to add two new lines to your ezmlmwebrc ... In the top
|
||||||
|
section of the file add
|
||||||
|
|
||||||
|
$FILE_UPLOAD = 1;
|
||||||
|
|
||||||
|
and in the %HELPER section, you need to add
|
||||||
|
|
||||||
|
addaddressfile => 'or you may enter the filename of a plain text file containing multiple RFC822 email addresses, one per line',
|
||||||
|
|
||||||
|
(or just copy the new ezmlmwebrc :)
|
||||||
|
|
||||||
|
Have a look for these two lines in the new ezmlmwebrc included in this
|
||||||
|
distribution if you are unsure of how/where to put these.
|
318
ezmlm-web-3.0/css/default.css
Normal file
318
ezmlm-web-3.0/css/default.css
Normal file
|
@ -0,0 +1,318 @@
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font: normal 100% sans-serif;
|
||||||
|
color: #606760;
|
||||||
|
}
|
||||||
|
|
||||||
|
font.ez {
|
||||||
|
font-style: italic;
|
||||||
|
color: #505050;
|
||||||
|
}
|
||||||
|
|
||||||
|
font.hint {
|
||||||
|
font-size: 85%;
|
||||||
|
}
|
||||||
|
|
||||||
|
font.feature {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav_bar {
|
||||||
|
float: left;
|
||||||
|
width: 20%;
|
||||||
|
margin-left: 1%;
|
||||||
|
margin-right: 1%;
|
||||||
|
margin-bottom: 1%;
|
||||||
|
margin-top: 5px;
|
||||||
|
padding-left: 0.5%;
|
||||||
|
padding-right: 0.5%;
|
||||||
|
padding-top: 1.5%;
|
||||||
|
padding-bottom: 1.5%;
|
||||||
|
background-color: #c0c0b0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav_group {
|
||||||
|
margin-top: 1%;
|
||||||
|
padding-bottom: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav_bar ul {
|
||||||
|
color: #af8060;
|
||||||
|
margin: 0;
|
||||||
|
padding-left: 10px;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav_bar li {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav_bar li a.nav_active {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav_bar font.no_link {
|
||||||
|
color: #2f4860;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav_bar a {
|
||||||
|
color: #2f4860;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav_bar a:hover {
|
||||||
|
background-color: #d8d8d8;
|
||||||
|
color: #2f4860;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content {
|
||||||
|
margin-left: 22%;
|
||||||
|
padding-left: 3%;
|
||||||
|
padding-right: 1%;
|
||||||
|
min-height: 440px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content li {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content button {
|
||||||
|
margin-top: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content ul {
|
||||||
|
line-height: 1.8em;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content ul li ul {
|
||||||
|
font-size: 85%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content fieldset {
|
||||||
|
margin-top: 0.5%;
|
||||||
|
margin-bottom: 1%;
|
||||||
|
padding-top: 1%;
|
||||||
|
padding-bottom: 1.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content fieldset.form form ul {
|
||||||
|
padding-left: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content fieldset.form form ul li ul {
|
||||||
|
padding-left: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content table.list_select {
|
||||||
|
table-layout: fixed;
|
||||||
|
width: 100%;
|
||||||
|
text-align: left;
|
||||||
|
line-height: 1.2em;
|
||||||
|
border-width: 0px;
|
||||||
|
padding-left: 2%;
|
||||||
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.formfield {
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
#news {
|
||||||
|
background: #e8947c;
|
||||||
|
color: #000000;
|
||||||
|
margin: 1%;
|
||||||
|
padding: 5px;
|
||||||
|
width: 30%;
|
||||||
|
float: right;
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#news font.title {
|
||||||
|
font-style: italic;
|
||||||
|
font-size: 110%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#news ul.changes {
|
||||||
|
font-size: 90%;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited {
|
||||||
|
color: #005040;
|
||||||
|
}
|
||||||
|
|
||||||
|
#oben {
|
||||||
|
background-color: #2f4860;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1.oben {
|
||||||
|
text-align: left;
|
||||||
|
border-bottom: solid 2px #ffffff;
|
||||||
|
padding: 5px;
|
||||||
|
font-weight: bold;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
color: #ffffff;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#perm_nav {
|
||||||
|
float: right;
|
||||||
|
padding-right: 5px;
|
||||||
|
font-size: 100%;
|
||||||
|
color: #ffd7f0;
|
||||||
|
background-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
#perm_nav a {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ffffff;
|
||||||
|
padding-left: 2px;
|
||||||
|
padding-right: 2px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#perm_nav a:hover {
|
||||||
|
color: #ffcc00;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.subscribers {
|
||||||
|
border-width: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 1%;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr, td {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
color: #5e5e5e;
|
||||||
|
background-color: #d8d8d8;
|
||||||
|
border: 1px dotted #5e5e5e;
|
||||||
|
font-size: 90%;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
color: #505050;
|
||||||
|
background-color: #d0d0d0;
|
||||||
|
border: 1px dotted #ACE149;
|
||||||
|
font-size: 90%;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lid {
|
||||||
|
margin: 0;
|
||||||
|
padding: 3px;
|
||||||
|
border-bottom: solid 1px #606070;
|
||||||
|
background-color: #c0c0b0;
|
||||||
|
font: bold 100% sans-serif;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
width: 85%;
|
||||||
|
font: normal 82% sans-serif;
|
||||||
|
background-color: #ffffff;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content h2 {
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-top: 10px;
|
||||||
|
font-weight: normal;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
color: #2f4860;
|
||||||
|
}
|
||||||
|
|
||||||
|
.push {
|
||||||
|
margin: 5px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.push p {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
#info_title {
|
||||||
|
text-align: center;
|
||||||
|
background-color: #c0c0b0;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-left: 0%;
|
||||||
|
margin-right: 1%;
|
||||||
|
margin-bottom: 0.2%;
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 125%;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header {
|
||||||
|
text-align: right;
|
||||||
|
background-color: #2f4860;
|
||||||
|
font-size: 90%;
|
||||||
|
color: #ffffff;
|
||||||
|
margin: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer {
|
||||||
|
text-align: center;
|
||||||
|
background-color: #2f4860;
|
||||||
|
font-size: 90%;
|
||||||
|
color: #ffffff;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer a {
|
||||||
|
color: #a0d0b0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer a:visited {
|
||||||
|
color: #a0d0b0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content div.introduction {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content div.warning, div.error, div.success {
|
||||||
|
margin-left: 10%;
|
||||||
|
margin-right: 10%;
|
||||||
|
margin-top: 2%;
|
||||||
|
margin-bottom: 3%;
|
||||||
|
padding: 2%;
|
||||||
|
text-align: center;
|
||||||
|
font-style: italic;
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content div.success {
|
||||||
|
background-color: #40d070;
|
||||||
|
color: #202020;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content div.warning {
|
||||||
|
background-color: #e0a0a0;
|
||||||
|
color: #202020;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content div.error {
|
||||||
|
background-color: #d05050;
|
||||||
|
color: #202020;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mail {
|
||||||
|
font-style: italic;
|
||||||
|
color: #2f4860;
|
||||||
|
}
|
1264
ezmlm-web-3.0/ezmlm-web.cgi
Executable file
1264
ezmlm-web-3.0/ezmlm-web.cgi
Executable file
File diff suppressed because it is too large
Load diff
59
ezmlm-web-3.0/ezmlmwebrc
Normal file
59
ezmlm-web-3.0/ezmlmwebrc
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
# Configuration file for ezmlm-web 2.3
|
||||||
|
# ===========================================================================
|
||||||
|
|
||||||
|
# This file is not just an ordinary configuration file - it contains valid
|
||||||
|
# perl statements that are executed just like any other perl script. When
|
||||||
|
# editing this file, be careful that it is still valid perl when you have
|
||||||
|
# finished (perl -w ezmlmwebrc ;-)
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Where do we store lists on this server ... Try "$HOME_DIR/lists".
|
||||||
|
# This directory will automatically be created if needed.
|
||||||
|
$LIST_DIR = "$HOME_DIR/lists";
|
||||||
|
|
||||||
|
# Where is the webusers file for access-permissions
|
||||||
|
# defaults to "$LIST_DIR/webusers"
|
||||||
|
$WEBUSERS_FILE = "$LIST_DIR/webusers";
|
||||||
|
|
||||||
|
# Where are the language files
|
||||||
|
# usually something like /usr/local/share/ezmlm-web/lang
|
||||||
|
$LANGUAGE_DIR = "/usr/local/share/ezmlm-web/lang";
|
||||||
|
|
||||||
|
# Where are the template files
|
||||||
|
# usually something like /usr/local/share/ezmlm-web/template
|
||||||
|
$TEMPLATE_DIR = "/usr/local/share/ezmlm-web/template";
|
||||||
|
|
||||||
|
# Safe list deletion?
|
||||||
|
# 0 = move list to .list and the .qmails to deleted.qmail/. Recoverable :)
|
||||||
|
# 1 = allow user to delete list completely. No backup, therefore no recovery.
|
||||||
|
$UNSAFE_RM = 0;
|
||||||
|
|
||||||
|
# Who is the alias user on this system (usually alias ;)
|
||||||
|
$ALIAS_USER = 'alias';
|
||||||
|
|
||||||
|
# Where do the qmail control files live on this system ...
|
||||||
|
$QMAIL_BASE = $Mail::Ezmlm::QMAIL_BASE . '/control';
|
||||||
|
|
||||||
|
# Do we want to allow ``pretty'' names - ie more human readable ones
|
||||||
|
# This will slow ezmlm-web down a bit for large lists
|
||||||
|
$PRETTY_NAMES = 1;
|
||||||
|
|
||||||
|
# Do we want to allow the users to be allowed to upload a file containing
|
||||||
|
# lists of email addresses to subscribe?
|
||||||
|
$FILE_UPLOAD = 1;
|
||||||
|
|
||||||
|
# What switches to we want ezmlm-web to have on as default. The ezmlm-make
|
||||||
|
# defaults are aBDFGHIJKLMNOpQRSTUWX (small means enabled, CAPITALS mean
|
||||||
|
# disabled). The defaults below should be reasonable - I use them ;)
|
||||||
|
$DEFAULT_OPTIONS = 'aBDFGHiJkLMNOpQRSTUWx';
|
||||||
|
|
||||||
|
# What is the title of this document?
|
||||||
|
$HTML_TITLE = "ezmlm-web - a mailinglists' administration interface";
|
||||||
|
|
||||||
|
# Optional: use a cascading style sheet (css)
|
||||||
|
$HTML_CSS_FILE = "css/default.css";
|
||||||
|
|
||||||
|
# choose a language (en|de)
|
||||||
|
$HTML_LANGUAGE = 'en';
|
||||||
|
|
9
ezmlm-web-3.0/htaccess.sample
Normal file
9
ezmlm-web-3.0/htaccess.sample
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#$Id: htaccess.sample,v 1.1 2000/01/29 11:35:40 guy Exp $
|
||||||
|
#
|
||||||
|
#order deny,allow
|
||||||
|
#deny from all
|
||||||
|
#allow from .ru.ac.za
|
||||||
|
AuthName "EZ Mailing List Manager
|
||||||
|
AuthType Basic
|
||||||
|
AuthUserFile /etc/ezmlm/.htusers
|
||||||
|
require valid-user
|
25
ezmlm-web-3.0/index.c
Normal file
25
ezmlm-web-3.0/index.c
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* $Id: index.c,v 1.2 2000/09/25 18:14:12 guy Exp $ */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* C wrapper to allow ezmlm-web.cgi to run suid */
|
||||||
|
/* Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved */
|
||||||
|
/* See the README file in this distribution for copyright information */
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
/* Change this path to wherever you decided to put ezmlm-web.cgi */
|
||||||
|
execv("/usr/local/bin/ezmlm-web.cgi");
|
||||||
|
|
||||||
|
/* Note that you could also use the following to allow a specific user
|
||||||
|
to store their mailing lists in a different directory defined by
|
||||||
|
/tmp/ezmlm-web-demo ... This over-rides the default . */
|
||||||
|
|
||||||
|
/* Look at the exec(3) man page if you don't understand how the arguments
|
||||||
|
list below works */
|
||||||
|
|
||||||
|
/*
|
||||||
|
char *switches[] = { "ezmlm-web.cgi", "-d", "/tmp/ezmlm-web-demo", NULL };
|
||||||
|
execv("/usr/local/bin/ezmlm-web.cgi", switches);
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
215
ezmlm-web-3.0/lang/de.hdf
Normal file
215
ezmlm-web-3.0/lang/de.hdf
Normal file
|
@ -0,0 +1,215 @@
|
||||||
|
LanguageID = de
|
||||||
|
|
||||||
|
LanguageName = Deutsch
|
||||||
|
|
||||||
|
Lang {
|
||||||
|
|
||||||
|
Menue {
|
||||||
|
Create = Neue Liste anlegen
|
||||||
|
Delete = Liste löschen
|
||||||
|
Subscribers = AbonnentInnen
|
||||||
|
AllowList = Zulassungsliste
|
||||||
|
DenyList = Ablehnungsliste
|
||||||
|
DigestList = Übersichtsliste
|
||||||
|
ModList = ModeratorInnen
|
||||||
|
ConfigMain = Einstellungen
|
||||||
|
ConfigSub = Einschreibung
|
||||||
|
ConfigPost = Einsendung
|
||||||
|
ConfigAdmin = Fern-Administration
|
||||||
|
ConfigArchive = Archivierung
|
||||||
|
ConfigFilter = Filterung
|
||||||
|
TextFiles = Texte
|
||||||
|
ListSelect = Auswahl einer Liste
|
||||||
|
Properties = Eigenschaften von
|
||||||
|
Help = Hilfe (extern)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Title {
|
||||||
|
ConfigMain = Listeneinstellungen
|
||||||
|
ConfigSub = Einschreibungsregeln
|
||||||
|
ConfigPosting = Einsendungsregeln
|
||||||
|
ConfigAdmin = Fern-Administration der Liste
|
||||||
|
ConfigArchive = Archivierung der Liste
|
||||||
|
ConfigFilter = Nachrichtenfilterung
|
||||||
|
SubscriberList = AbonnentInnen der Liste
|
||||||
|
AllowList = Zugelassene Nutzer
|
||||||
|
DenyList = Abzuweisende Nutzer
|
||||||
|
DigestList = EmpfängerInnen von Zusammenfassungen
|
||||||
|
ModList = ModeratorInnen der Liste
|
||||||
|
ListCreate = Anlegen einer neuen Liste
|
||||||
|
ListSelect = Auswählen einer Liste
|
||||||
|
FileSelect = Auswählen eines Textbausteins
|
||||||
|
FileEdit = Bearbeitung des Textbausteins
|
||||||
|
ConfirmDelete = Bestätige die Löschung von
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Buttons {
|
||||||
|
Create = Erzeuge die Liste
|
||||||
|
ConfirmDeletion = Lösche die Liste
|
||||||
|
DeleteAddress = Adresse(n) entfernen
|
||||||
|
AddAddress = Adresse(n) hinzufügen
|
||||||
|
UpdateConfiguration = Einstellungen speichern
|
||||||
|
EditFile = Datei bearbeiten
|
||||||
|
SaveFile = Datei speichern
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ErrorMessage {
|
||||||
|
UnknownAction = Diese Aktion ist undefiniert!
|
||||||
|
ParameterMissing = Diese Aktion benätigt weitere Parameter!
|
||||||
|
Forbidden = Fehler: dir fehlen die notwendigen Rechte für diese Aktion
|
||||||
|
ListDirUnavailable = Fehler beim Zugriff auf das Hauptverzeichnis der Listen!
|
||||||
|
InvalidFileName = Der Dateiname ist nicht zulässig.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WarningMessage {
|
||||||
|
AddAddress = Mindestens eine Mailadresse konnte nicht hinzugefügt werden!
|
||||||
|
DeleteAddress = Mindestens eine der angegebenen Adressen konnte nicht entfernt werden!
|
||||||
|
CreateList = Fehler beim Anlegen der neuen Liste!
|
||||||
|
DeleteList = Die Löschung der Mailingliste schlug fehl!
|
||||||
|
UpdateConfig = Beim Speichern der Einstellungen trat ein Fehler auf!
|
||||||
|
SaveFile = Die Datei konnte nicht gespeichert werden!
|
||||||
|
ListAlreadyExists = Es gibt bereits eine Liste mit diesem Namen.
|
||||||
|
ListDoesNotExist = Eine Liste dieses Namens existiert nicht.
|
||||||
|
ListDirAccessDenied = Fehler beim Zugriff auf das Verzeichnis der Liste
|
||||||
|
TextDirAccessDenied = Beim Zugriff auf das Text-Verzeichnis der Liste trat ein Fehler auf.
|
||||||
|
SafeRemoveRenameDirFailed = Das Verschieben der Liste schlug fehl.
|
||||||
|
DotQmailDirAccessDenied = Fehler beim Zugriff auf das Nutzerverzeichnis des Listenverwalters
|
||||||
|
SafeRemoveMoveDotQmailFailed = Beim Verschieben der .qmail-Dateien trat ein Fehler auf!
|
||||||
|
UnsafeRemoveListDirFailed = Fehler beim sicheren Löschen der Mailingliste
|
||||||
|
UnsafeRemoveDotQmailFailed = Fehler beim Löschen der .qmail-Dateien
|
||||||
|
InvalidFileFormat = Die gewählte Datei konnte nicht als Textdatei erkannt werden.
|
||||||
|
WebUsersUpdate = Fehler beim Aktualisieren der Nutzerverwaltungsdatei
|
||||||
|
WebUsersRead = Fehler beim Lesen der Nutzerverwaltungsdatei
|
||||||
|
InvalidListName = Der gewählte Listenname enthält unzulässige Zeichen
|
||||||
|
ReservedListName = Dieser Listenname ist ein reserviertes Wort und kann nicht benutzt werden
|
||||||
|
EmptyListName = Es wurde kein Name für die Listen angegeben.
|
||||||
|
InvalidLocalPart = Die gewählte untergeordnete Liste ist ungültig.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SuccessMessage {
|
||||||
|
AddAddress = Einschreibung erfolgreich
|
||||||
|
DeleteAddress = Löschung erfolgreich abgeschlossen
|
||||||
|
CreateList = Die neue Liste wurde erfolgreich angelegt.
|
||||||
|
DeleteList = Die Mailingliste wurde gelöscht.
|
||||||
|
UpdateConfig = Die neuen Einstellungen wurden erfolgreich gespeichert.
|
||||||
|
SaveFile = Die Datei wurde gespeichert.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Options {
|
||||||
|
a = Archiviere Mailinglisten-Mails
|
||||||
|
b = Nur Moderatoren dürfen auf das Archiv zugreifen
|
||||||
|
d = Aktiviere die Zusammenfassungsliste
|
||||||
|
f = Füge einen Vorspann zum Betreff der ausgehenden Mails hinzu
|
||||||
|
g = Verweigere unbekannten NutzerInnen den Zugriff auf das Archiv
|
||||||
|
h = Bei der Einschreibung in die Liste ist keine Bestätigungsmail erforderlich
|
||||||
|
i = Indiziere die Nachrichten zur Veröffentlichung im Internet (z.B. mit ezmlm-www)
|
||||||
|
j = Beim Austragen aus der Liste ist keine Bestätigungsmail erforderlich
|
||||||
|
k = Beachte die Ablehnungsliste bei der Verarbeitung von Mails
|
||||||
|
l = Fern-AdministratorInnen (ModeratorInnen) dürfen eine Liste der AbonnentInnen anfordern
|
||||||
|
m = Alle eingehenden Nachrichten werden moderiert
|
||||||
|
n = Fern-AdministratorInnen (ModeratorInnen) dürfen Textbausteine per Mail verändern
|
||||||
|
o = Nur ModeratorInnen dürfen Nachrichten einsenden
|
||||||
|
p = Die Einschreibung und der Zugriff auf das Archiv sind öffentlich zugänglich
|
||||||
|
q = Verarbeite auch Anfragen im Mailman-Stil (Kompatibilität)
|
||||||
|
r = Erlaube die Fern-Administration der Liste (für ModeratorInnen)
|
||||||
|
s = Die Einschreibung in die Liste und für die Zusammenfassungen wird moderiert
|
||||||
|
t = Hänge eine Signatur an jede versandte Nachricht
|
||||||
|
u = Einsendungen von AbonnentInnen werden immer akzeptiert (dies gilt auch für moderierte Listen)
|
||||||
|
w = Entferne den Aufruf von ezmlm-warn aus den Verarbeitungsregeln (für sehr spezielle Konfigurationen)
|
||||||
|
x = Prüfe die Mime-Typen der Bestandteile eingehender Nachrichten
|
||||||
|
y = Fordere eine Bestätigung für jede eingesandte Nachricht an
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Settings {
|
||||||
|
0 = Diese Liste is nur eine Unterliste
|
||||||
|
3 = Definiere eine andere Absender-Adresse ausgehender Mails
|
||||||
|
4 = Eigene Einstellungen zum Versand von Zusammenfassungsmails (ezmlm-tstdig)
|
||||||
|
5 = Lege die Mailadresse des Verantwortlichen für diese Liste fest
|
||||||
|
6 = Verwende eine SQL-Datenbank
|
||||||
|
7 = Die Datenbank der Nachrichten-ModeratorInnen befindet sich in einem alternativen Verzeichnis
|
||||||
|
8 = Die Datenbank der Einschreibe--ModeratorInnen (und Fern-AdministratorInnen) befindet sich in einem alternativen Verzeichnis
|
||||||
|
# 9 => not used - it is only an alternative to (8)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Misc {
|
||||||
|
HelpLink = Das online-Handbuch von ezmlm-idx
|
||||||
|
Subscription = Einschreibung
|
||||||
|
Subscribers = AbonnentInnen
|
||||||
|
RemoteAdmin = Fern-AdministratorIn
|
||||||
|
ListName = Name der Liste
|
||||||
|
ListAddress = Addresse der Liste
|
||||||
|
ListOptions = Grundlegende Einstellungen
|
||||||
|
AllowedToEdit = Die Nutzer, die diese Liste per Web-Interface konfigurieren dürfen:
|
||||||
|
HeaderRemove = zu entfernende Kopfzeilen
|
||||||
|
HeaderAdd = hinzuzufügende Kopfzeilen
|
||||||
|
MimeRemove = Nachrichtenbestandteile dieses Typs werden entfernt
|
||||||
|
MimeReject = Nachrichten, die diese Datentype beinhalten, werden abgewiesen
|
||||||
|
EditFileInfo {
|
||||||
|
CommonTags = allgemeine Platzhalter
|
||||||
|
ListNameLocal = der lokale Teil (vor dem "@") der Listenadresse
|
||||||
|
ListNameHost = die Domain der Mailadresse
|
||||||
|
MessageNumber = die Nummer der jeweiligen Nachricht
|
||||||
|
SubAddress = die Einschribe-Adresse
|
||||||
|
SubReplyAddress = die Bestätigungsadresse
|
||||||
|
AcceptanceAddress = die Zustimmungsadresse
|
||||||
|
RejectionAddress = die Ablehnungsadresse
|
||||||
|
}
|
||||||
|
PostModPathWarn = Die Nachrichten-ModeratorInnen werden nicht an ihrem üblichen Ort gespeichert.
|
||||||
|
SubModPathWarn = Die Einschreibe-ModeratorInnen werden nicht an ihrem üblichen Ort gespeichert.
|
||||||
|
RemoteAdminPathWarn = Die Fern-AdministratorInnen werden nicht an ihrem üblichen Ort gespeichert.
|
||||||
|
MessageSize.Max = Verweigere die Annahme von Nachrichten, die eine gewisse Größe überschreiten
|
||||||
|
MessageSize.Min = Verweigere die Annahme von Nachrichten, die eine gewisse Größe unterschreiten
|
||||||
|
MessageSize.Unit = Bytes
|
||||||
|
NoFiles = Es befinden sich keine Dateien im Text-Verzeichnis der Mailingliste.
|
||||||
|
AddSubscriberAddress = Füge eine neue Mailadresse hinzu:
|
||||||
|
AddSubscriberFile = Importiere eine Datei, die Mailadressen enthält:
|
||||||
|
SuggestDefaultPath = Es wird empfohlen, das Standard-Verzeichnis zu verwenden. Andernfalls kannst du die ModeratorInnen-Liste nicht mit ezmlm-web verwalten.
|
||||||
|
FooterText = eine Web-Oberfläche für
|
||||||
|
NoListsAvailable = Es sind keine passenden Listen vorhanden.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Introduction {
|
||||||
|
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).
|
||||||
|
ConfigFilter = Die Rubrik Filterung und Verarbeitung gestattet dir, viele Aspekte ausgehender Mails an deine Bedürfnisse anzupassen. Beipielsweise den Betreff, Kopfzeilen, eine Signatur sowie eine Filterung nach der Größe der Mail oder nach enthaltenen Datentypen.
|
||||||
|
ConfigMain = Die allgemeinen Eigenschaften bestimmen einige wichtige Verhaltensweisen der Mailingliste.
|
||||||
|
ConfigPosting = Die Einsende-Konfiguration bestimmt, wer Nachrichten einsenden darf und wie diese Mails verarbeitet werden sollen.
|
||||||
|
ConfigSub = Hier kannst du festlegen, wer sich als Abonnent selbständig eintragen darf und wie der Einschreibungsprozess abläuft.
|
||||||
|
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.
|
||||||
|
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.
|
||||||
|
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).
|
||||||
|
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.
|
||||||
|
TextFiles = Das Auswahlfeld beinhaltet die Liste aller verfügbaren Textbausteine im Texte-Verzeichnis der Liste. Diese Textbasuteine werden zur Erstellung der automatischen Antworten der Mailingliste benutzt.
|
||||||
|
EditTextFile = Passe den Textbaustein an die Erfordernisse der Liste an. Eventuell möchtest du dafür auch einige der reservierten Platzhalter verwenden, die am Ende dieser Seite aufgeführt sind.
|
||||||
|
}
|
||||||
|
|
||||||
|
Legend {
|
||||||
|
ConfigAdmin = Fern-Administrations-Rechte
|
||||||
|
ConfigArchve = Archivierungseinstellungen
|
||||||
|
ConfigPosting = Einsende-Regeln
|
||||||
|
ConfigSub = Einschreibungsdetails
|
||||||
|
ConfigMain = Allgemeine Listen-Einstellungen
|
||||||
|
ConfigFilter = Filterungs- und Anpassungsregeln
|
||||||
|
ListCreate = Eigenschaften der neuen Liste
|
||||||
|
RelevantOptions = Relevante Optionen
|
||||||
|
MembersList = AbonnentInnen-Verwaltung
|
||||||
|
MembersAllow = Verwaltung der zulässigen Adressen
|
||||||
|
MembersDeny = Verwaltung der abzulehnenden Adressen
|
||||||
|
MembersDigest = Verwaltung der AbonnentInnen der Zusammenfassungen
|
||||||
|
MembersMod = Verwaltung der ModeratorInnen / AdministratorInnen
|
||||||
|
TextFiles = Verfügbare Textbausteine
|
||||||
|
TextFileEdit = Bearbeite einen Textbaustein
|
||||||
|
TextFileInfo = Nützliche Platzhalter
|
||||||
|
AvailableLists = Verfügbare Listen
|
||||||
|
}
|
||||||
|
}
|
216
ezmlm-web-3.0/lang/en.hdf
Normal file
216
ezmlm-web-3.0/lang/en.hdf
Normal file
|
@ -0,0 +1,216 @@
|
||||||
|
LanguageID = en
|
||||||
|
|
||||||
|
LanguageName = English
|
||||||
|
|
||||||
|
Lang {
|
||||||
|
|
||||||
|
Menue {
|
||||||
|
Create = Create new list
|
||||||
|
Delete = Delete list
|
||||||
|
Subscribers = Subscribers
|
||||||
|
AllowList = allow list
|
||||||
|
DenyList = deny list
|
||||||
|
DigestList = digest list
|
||||||
|
ModList = moderators
|
||||||
|
ConfigMain = Options
|
||||||
|
ConfigSub = subscription
|
||||||
|
ConfigPost = posting
|
||||||
|
ConfigAdmin = administration
|
||||||
|
ConfigArchive = archive
|
||||||
|
ConfigFilter = filtering
|
||||||
|
TextFiles = Text files
|
||||||
|
ListSelect = Choose a list
|
||||||
|
Properties = Properties of
|
||||||
|
ConfirmDelete = Confirm deletion of
|
||||||
|
Help = Help (external)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Title {
|
||||||
|
ConfigMain = List configuration
|
||||||
|
ConfigSub = Subscription options
|
||||||
|
ConfigPosting = Posting options
|
||||||
|
ConfigAdmin = Remote administration
|
||||||
|
ConfigArchive = Archive options
|
||||||
|
ConfigFilter = Message filtering
|
||||||
|
SubscriberList = Subscribers of the list
|
||||||
|
AllowList = Allowed users
|
||||||
|
DenyList = Blocked users
|
||||||
|
DigestList = Digest subscribers
|
||||||
|
ModList = Moderators of the mailinglist
|
||||||
|
ListCreate = Create a new list
|
||||||
|
ListSelect = Choose a list
|
||||||
|
FileSelect = Choose a file for editing
|
||||||
|
FileEdit = Editing file
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Buttons {
|
||||||
|
Create = Create list
|
||||||
|
ConfirmDeletion = Delete the list
|
||||||
|
DeleteAddress = Delete address(es)
|
||||||
|
AddAddress = Add address(es)
|
||||||
|
UpdateConfiguration = Update configuration
|
||||||
|
EditFile = Edit file
|
||||||
|
SaveFile = Save File
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ErrorMessage {
|
||||||
|
UnknownAction = this action is undefined
|
||||||
|
ParameterMissing = this action needs one or more parameters
|
||||||
|
Forbidden = Error: you are not allowed to do this!
|
||||||
|
ListDirUnavailable = Could not create the list directory!
|
||||||
|
InvalidFileName = The name of the file is invalid!
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WarningMessage {
|
||||||
|
AddAddress = Adding of at least one mail address failed!
|
||||||
|
DeleteAddress = Removal of at least one mail address failed!
|
||||||
|
CreateList = Creation of new mailing list failed!
|
||||||
|
DeleteList = Removal of mailing list failed!
|
||||||
|
UpdateConfig = Update of configuration failed!
|
||||||
|
SaveFile = The file could not be saved!
|
||||||
|
ListAlreadyExists = There is already a list with this name!
|
||||||
|
ListDoesNotExist = A list with this name does not exist!
|
||||||
|
ListDirAccessDenied = Unable to access the list's directory:
|
||||||
|
TextDirAccessDenied = Unable to access the list's directory of text files:
|
||||||
|
SafeRemoveRenameDirFailed = Unable to rename list for safe removal:
|
||||||
|
DotQmailDirAccessDenied = Unable to read the mail user's home directory for .qmail files
|
||||||
|
SafeRemoveMoveDotQmailFailed = Unable to move .qmail files
|
||||||
|
UnsafeRemoveListDirFailed = Unable to delete list
|
||||||
|
UnsafeRemoveDotQmailFailed = Unable to delete .qmail files
|
||||||
|
InvalidFileFormat = The uploaded file must be a text file
|
||||||
|
WebUsersUpdate = Could not update the webusers file
|
||||||
|
WebUsersRead = Could not read the webusers file
|
||||||
|
InvalidListName = The name of the list contains invalid characters
|
||||||
|
ReservedListName = This listname may not be used as it is reserved for internal purposes
|
||||||
|
EmptyListName = The name of the list may not be empty
|
||||||
|
InvalidLocalPart = The local part of the list address is not valid
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SuccessMessage {
|
||||||
|
AddAddress = The address was added to the list.
|
||||||
|
DeleteAddress = The address was removed from the list.
|
||||||
|
CreateList = The new mailing list was successfully created.
|
||||||
|
DeleteList = The mailing list was successfully removed.
|
||||||
|
UpdateConfig = The mailing list's configuration was successfully changed.
|
||||||
|
SaveFile = The file was saved.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Options {
|
||||||
|
a = Archive mailing list messages
|
||||||
|
b = Only moderators are allowed to access the archive
|
||||||
|
d = Activate the digest list
|
||||||
|
f = Add a prefix to the subject line of outgoing messages
|
||||||
|
g = Archive requests from unrecogniced senders are denied
|
||||||
|
h = Subscriptions do not require confirmation by the user
|
||||||
|
i = Index mailing list messages for WWW archive access
|
||||||
|
j = Unsubscribe does not require confirmation
|
||||||
|
k = Use deny list to prevent some users from posting
|
||||||
|
l = Remote administrators (moderators) may request a subscriber list
|
||||||
|
m = All incoming messages are moderated
|
||||||
|
n = Remote administrators (moderators) may edit text files in DIR/text
|
||||||
|
o = Only moderators may post
|
||||||
|
p = Allow subscription and archive retrieval for everyone
|
||||||
|
q = Process mailman-style requests (to local-request@domain)
|
||||||
|
r = Enable remote administration of the list (for moderators)
|
||||||
|
s = Subscriptions to the main list and the digest list will be moderated
|
||||||
|
t = Add a trailing text to every message
|
||||||
|
u = Subscribed users may always post messages (even ignoring moderation)
|
||||||
|
w = Remove the ezmlm-warn invocations from the list setup (rarely useful)
|
||||||
|
x = Remove or reject specific mime types in messages
|
||||||
|
y = Request a confirmation mail for every posted message
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Settings {
|
||||||
|
0 = Make the list a sublist of list mainlist@host
|
||||||
|
3 = Set a custom "From:" header for outgoing messsages
|
||||||
|
4 = Define customized setting for digest creation (ezmlm-tstdig)
|
||||||
|
5 = Define the email address of the list owner
|
||||||
|
6 = Use a SQL database
|
||||||
|
7 = Define a custom path to the database for posting moderators
|
||||||
|
8 = Define a custom path to the database for remote administrators and subscription moderators
|
||||||
|
# 9 => not used - it is only an alternative to (8)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Misc {
|
||||||
|
HelpLink = The manual page of ezmlm-idx
|
||||||
|
Subscription = Subscription
|
||||||
|
Subscribers = subscribers
|
||||||
|
RemoteAdmin = Remote Admin
|
||||||
|
ListName = List Name
|
||||||
|
ListAddress = List Address
|
||||||
|
ListOptions = Basic List Options
|
||||||
|
AllowedToEdit = Users allowed to edit this list via web interface
|
||||||
|
HeaderRemove = Headers to strip from all outgoing mail
|
||||||
|
HeaderAdd = Headers to add to all outgoing mail
|
||||||
|
MimeRemove = Mime types to strip from all outgoing mail
|
||||||
|
MimeReject = Messages containing any of these mime type will be rejected
|
||||||
|
EditFileInfo {
|
||||||
|
CommonTags = common tags
|
||||||
|
ListNameLocal = The local part of the list name
|
||||||
|
ListNameHost = The host name of the list name
|
||||||
|
MessageNumber = Number of the respective message
|
||||||
|
SubAddress = The subscription address
|
||||||
|
SubReplyAddress = The address a subscriber must reply to
|
||||||
|
AcceptanceAddress = The acceptance address
|
||||||
|
RejectionAddress = The rejection address
|
||||||
|
}
|
||||||
|
SuggestDefaultPath = You will have to manage them manually.
|
||||||
|
PostModPathWarn = Posting moderators are stored in a non-standard location
|
||||||
|
SubModPathWarn = Subscription moderators are stored in a non-standard location
|
||||||
|
RemoteAdminPathWarn = Remote administrators are stored in a non-standard location
|
||||||
|
MessageSize.Max = Reject messages exceeding a specified value
|
||||||
|
MessageSize.Min = Reject messages smaller than a specified value
|
||||||
|
MessageSize.Unit = bytes
|
||||||
|
NoFiles = There are no files in the text directory of the mailinglist.
|
||||||
|
AddSubscriberAddress = Add a new mail address:
|
||||||
|
AddSubscriberFile = Upload a file containing mail addresses to be added:
|
||||||
|
SuggestDefaultPath = It is recommended to use the default path for the moderation database. Otherwise you cannot manage the moderators' list with ezmlm-web.
|
||||||
|
FooterText = a web interface for
|
||||||
|
NoListsAvailable = I could not find any accessible list for you.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Introduction {
|
||||||
|
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).
|
||||||
|
ConfigFilter = Filtering allows you to add or remove mail headers, to prefix the subject, to add a trailer to every message and to block mails according to their size or attached filetypes.
|
||||||
|
ConfigMain = The basic properties of a list define some important settings (e.g. mail address) and the general behaviour (public or closed).
|
||||||
|
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.
|
||||||
|
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.
|
||||||
|
DigestList = Some users of your mailing list may prefer to receive a regular digest instead of all mailing list messages. They will usually not take part in discussions, but aret somehow interested anyway.
|
||||||
|
ModList = Moderators (for posting or subscription) and remote administrators can be allowed to manage the most important parts of mailing list administration: moderating subscription and posting, changing filtering rules, and managing users. Moderators may even be configured to be the only ones, who are allowed to send mails to the mailing list.
|
||||||
|
SubscriberList = Subscribers of a mailing list will receive all outgoing message of the list. They may also be allowed to post messages directly or moderated. Usually anonymous users are able to subscribe and unsubscribe without the help of an administrator - but of course, you may configure this to suit your needs.
|
||||||
|
TextFiles = The selection box contains a list of files available in the DIR/text directory. These files are sent out in response to specfic user requests or as part of all outgoing messages. Edit them as necessary.
|
||||||
|
EditTextFile = Change this text according to your needs. Maybe you would like to use some of the reserved tags, that are described at the bottom of this page.
|
||||||
|
}
|
||||||
|
|
||||||
|
Legend {
|
||||||
|
ConfigAdmin = Remote administrator's permissions
|
||||||
|
ConfigArchve = Archive configuration
|
||||||
|
ConfigPosting = Posting rules
|
||||||
|
ConfigSub = Subscription details
|
||||||
|
ConfigMain = General list configuration
|
||||||
|
ConfigFilter = Filtering and manipulation rules
|
||||||
|
ListCreate = Properties of the new list
|
||||||
|
RelevantOptions = Useful settings
|
||||||
|
MembersList = Manage subscribers
|
||||||
|
MembersAllow = Manage allowed users
|
||||||
|
MembersDeny = Manage blocked users
|
||||||
|
MembersDigest = Manage digest subscribers
|
||||||
|
MembersMod = Manage moderators and administrators
|
||||||
|
TextFiles = Available text files
|
||||||
|
TextFileEdit = Edit content of text file
|
||||||
|
TextFileInfo = Useful placeholders
|
||||||
|
AvailableLists = Available lists
|
||||||
|
}
|
||||||
|
}
|
187
ezmlm-web-3.0/lang/jp.pm
Normal file
187
ezmlm-web-3.0/lang/jp.pm
Normal file
|
@ -0,0 +1,187 @@
|
||||||
|
# language-specific definitions for ezmlm-web
|
||||||
|
# in Japanese
|
||||||
|
|
||||||
|
# The meanings of the various ezmlm-make command line switches. The default
|
||||||
|
# ones match the ezmlm-idx 0.4 default ezmlmrc ... Alter them to suit your
|
||||||
|
# own ezmlmrc. Removing options from this list makes them unavailable
|
||||||
|
# through ezmlm-web - this could be useful for things like -w
|
||||||
|
|
||||||
|
%EZMLM_LABELS = (
|
||||||
|
# option => ['Short Name',
|
||||||
|
# 'Long Help Description'],
|
||||||
|
|
||||||
|
a => ['アーカイブ保存',
|
||||||
|
'メッセージをアーカイブする'],
|
||||||
|
b => ['アーカイブブロック',
|
||||||
|
'モデレータのみアーカイブにアクセス可能'],
|
||||||
|
# c => config. This is implicity called, so is not defined here
|
||||||
|
d => ['ダイジェスト作成',
|
||||||
|
'メッセージのダイジェストリストをセットアップする'],
|
||||||
|
# e => edit. Also implicity called, so not defined here
|
||||||
|
f => ['件名にPrefixを付加する',
|
||||||
|
'件名に指定したPrefix文字を付加する'],
|
||||||
|
g => ['アーカイブ制限',
|
||||||
|
'送信者が未登録の場合アーカイブのアクセスを拒否する'],
|
||||||
|
h => ['登録確認をしない',
|
||||||
|
'メールによる登録時に確認メールを送らない'],
|
||||||
|
i => ['インデックス作成',
|
||||||
|
'WWW アーカイブアクセス用インデックスの作成'],
|
||||||
|
j => ['登録解除確認をしない',
|
||||||
|
'メールによる登録解除時に確認メールを送らない'],
|
||||||
|
k => ['拒否リスト有効',
|
||||||
|
'拒否リストに登録されたアドレスを拒否する'],
|
||||||
|
l => ['登録者リスト取出',
|
||||||
|
'遠隔管理者に登録者リストを送る'],
|
||||||
|
m => ['投稿の審査',
|
||||||
|
'全ての投稿メッセージを審査する'],
|
||||||
|
n => ['テキスト編集',
|
||||||
|
'遠隔管理者にテキスト編集を許可する'],
|
||||||
|
o => ['モデレータのみ投稿可',
|
||||||
|
'モデレータ以外の投稿を拒否する'],
|
||||||
|
p => ['公開する',
|
||||||
|
'メールによる登録、登録解除などを有効にする'],
|
||||||
|
q => ['リクエスト形式有効',
|
||||||
|
'local-request@host のメールを処理する'],
|
||||||
|
r => ['遠隔管理',
|
||||||
|
'遠隔管理を有効にする'],
|
||||||
|
s => ['登録の審査',
|
||||||
|
'登録を審査する'],
|
||||||
|
t => ['Trailerを付加する',
|
||||||
|
'メッセージの末尾にTrailerを付加する'],
|
||||||
|
u => ['登録者のみ投稿可',
|
||||||
|
'登録者の投稿のみを受け付ける'],
|
||||||
|
# v => version. I doubt you will really need this ;-)
|
||||||
|
w => ['警告を出さない',
|
||||||
|
'ezmlm-warn(1) の挙動を抑止する'],
|
||||||
|
x => ['指定mime typeの削除',
|
||||||
|
'指定したmime typeの貼付ファイルを削除する'],
|
||||||
|
# y => not used
|
||||||
|
# z => not used
|
||||||
|
|
||||||
|
# These all take an extra argument, which is the default value to use
|
||||||
|
|
||||||
|
0 => ['サブリストにする',
|
||||||
|
'指定したメインリストのサブリストにする',
|
||||||
|
'mainlist@host'],
|
||||||
|
# 1 => not used
|
||||||
|
# 2 => not used
|
||||||
|
3 => ['送信者アドレス固定',
|
||||||
|
'指定した Fromアドレスに固定する',
|
||||||
|
'fromarg'],
|
||||||
|
4 => ['ダイジェストオプション',
|
||||||
|
'ezmlm-tstdig(1) のオプションを指定する',
|
||||||
|
'-t24 -m30 -k64'],
|
||||||
|
5 => ['オーナーアドレス',
|
||||||
|
'リストオーナーのアドレスを指定する',
|
||||||
|
''],
|
||||||
|
6 => ['SQLデータベース',
|
||||||
|
'SQLデータベースへの接続情報',
|
||||||
|
'host:port:user:password:datab:table'],
|
||||||
|
7 => ['メッセージモデレータのデータベース',
|
||||||
|
'メッセージモデレータのデータベースへのフルパス',
|
||||||
|
'/some/full/path'],
|
||||||
|
8 => ['登録モデレータのデータベース',
|
||||||
|
'登録モデレータのデータベースへのフルパス',
|
||||||
|
'/some/full/path'],
|
||||||
|
9 => ['遠隔管理者データベース',
|
||||||
|
'遠隔管理者のデータベースへのフルパス',
|
||||||
|
'/some/full/path']
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# This list defines most of the context sensitive help in ezmlm-web. What
|
||||||
|
# isn't defined here is the options, which are defined above ... You can
|
||||||
|
# alter these if you feel something else would make more sense to your users
|
||||||
|
# Just be careful of what can fit on a screen!
|
||||||
|
|
||||||
|
%HELPER = (
|
||||||
|
|
||||||
|
# These should be self explainitory
|
||||||
|
addaddress => 'RFC822 に準拠したメールアドレスを入れます 例; J Random User <jru@on.web.za>',
|
||||||
|
addaddressfile => 'または RFC822 に準拠したアドレスを、1行毎に含むテキストファイルを選択します',
|
||||||
|
moderator => 'モデレータ: 登録や投稿を審査する人のリスト',
|
||||||
|
deny => '拒絶リスト: メーリングリストへの参加を拒絶する人のリスト',
|
||||||
|
allow => '許可リスト: メーリングリストへの参加を特に許可する人のリスト',
|
||||||
|
digest => 'ダイジェストリスト: 全てのメッセージのダイジェストの受け取りを許可された人のリスト',
|
||||||
|
webarch => 'ウェブベースのアーカイブリストの閲覧',
|
||||||
|
config => 'メーリングリストの設定の変更',
|
||||||
|
listname => 'リスト選択時に表示される名前.また、実際に作成されるサブディレクトリの名前.',
|
||||||
|
listadd => 'メーリングリストの投稿に使用されるアドレス.特殊な場合を除き、- 以前は変更削除しないこと',
|
||||||
|
webusers => 'NB! 現在は、ここで指定できるユーザーは実在のユーザーに限る. ユーザーの追加は将来の追加課題',
|
||||||
|
prefix => '件名の先頭に付加される文字列 #で、メッセージ番号がつきます',
|
||||||
|
headerremove => 'メッセージから取り除くヘッダーを指定する',
|
||||||
|
headeradd => 'メッセージに追加するヘッダーを指定する',
|
||||||
|
mimeremove => '指定した mime type の貼付ファイルをメッセージから削除する',
|
||||||
|
allowedit => 'ユーザー名のカンマ区切りリストまたは、<CODE>ALL</CODE> (有効な全てのユーザー)',
|
||||||
|
mysqlcreate => 'MySQLに必要なテーブルを作成する'
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# This defines the captions of each of the buttons in ezmlm-web, and allows
|
||||||
|
# you to configure them for your own language or taste. Since these are used
|
||||||
|
# by the switching algorithm it is important that every button has a unique
|
||||||
|
# caption - ie we can't have two 'Edit' buttons doing different things.
|
||||||
|
|
||||||
|
%BUTTON = (
|
||||||
|
|
||||||
|
# These MUST all be unique!
|
||||||
|
create => '作成',
|
||||||
|
createlist => 'リスト作成',
|
||||||
|
edit => '編集',
|
||||||
|
delete => '削除',
|
||||||
|
deleteaddress => 'アドレス削除',
|
||||||
|
addaddress => 'アドレス追加',
|
||||||
|
moderators => 'モデレータ',
|
||||||
|
denylist => '拒絶リスト',
|
||||||
|
allowlist => '許可リスト',
|
||||||
|
digestsubscribers => 'ダイジェスト登録者',
|
||||||
|
configuration => '設定',
|
||||||
|
yes => 'はい',
|
||||||
|
no => 'いいえ',
|
||||||
|
updateconfiguration => '設定更新',
|
||||||
|
edittexts => 'テキスト編集',
|
||||||
|
editfile => 'ファイル編集',
|
||||||
|
savefile => 'ファイル保存',
|
||||||
|
webarchive => 'ウェブアーカイブ',
|
||||||
|
selectlist => 'リスト選択',
|
||||||
|
subscribers => '登録者編集',
|
||||||
|
cancel => 'キャンセル',
|
||||||
|
resetform => 'リセット',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# This defines the fixed text strings that are used in ezmlm-web. By editing
|
||||||
|
# these along with the button labels and help texts, you can convert ezmlm-web
|
||||||
|
# to another language :-) If anyone gets arround to doing complete templates
|
||||||
|
# for other languages I would appreciate a copy so that I can include it in
|
||||||
|
# future releases of ezmlm-web.
|
||||||
|
|
||||||
|
%LANGUAGE = (
|
||||||
|
nop => 'Action not yet implemented',
|
||||||
|
chooselistinfo => "<UL><LI>メーリングリストを選択するか、または、 [$BUTTON{'create'}] ボタンを押して作成してください.<LI>変更する場合は、選択して、 [$BUTTON{'edit'}] ボタンを押してください.<LI>削除する場合は、選択して、 [$BUTTON{'delete'}] ボタンを押してください.</UL>",
|
||||||
|
confirmdelete => '削除確認', # list name
|
||||||
|
subscribersto => '登録者編集', # list name
|
||||||
|
subscribers => '登録者',
|
||||||
|
additionalparts => 'リスト付加情報',
|
||||||
|
posting => '投稿',
|
||||||
|
subscription => '登録',
|
||||||
|
remoteadmin => '遠隔管理',
|
||||||
|
for => 'for', # as in; moderators for blahlist
|
||||||
|
createnew => '新規リスト作成',
|
||||||
|
listname => 'リスト名',
|
||||||
|
listaddress => 'リストアドレス',
|
||||||
|
listoptions => 'リストオプション',
|
||||||
|
allowedtoedit => 'リスト編集許可者',
|
||||||
|
editconfiguration => 'リスト設定編集',
|
||||||
|
prefix => '件名に付加する文字 prefix',
|
||||||
|
headerremove => '削除するヘッダー情報',
|
||||||
|
headeradd => '追加するヘッダー情報',
|
||||||
|
mimeremove => '削除する貼付ファイルのmime type',
|
||||||
|
edittextinfo => "左側にある一覧は、DIR/text の中にあるテキストファイルです. <BR>これらのファイルは、ユーザーのリクエストに対する返信内容,または、配信されるメールに付加される内容です.<P>このファイルを編集するには, 左の一覧から選択して、 [$BUTTON{'editfile'}] ボタンを押します.<P>終了または、中止するときは、[$BUTTON{'cancel'}] ボタンを押します.",
|
||||||
|
editingfile => 'ファイル編集',
|
||||||
|
editfileinfo => '<BIG><STRONG>マネージ用</STRONG></BIG><BR><TT><STRONG><#l#></STRONG></TT> リスト名<BR><TT><STRONG><#A#></STRONG></TT> 投稿者アドレス<BR><TT><STRONG><#R#></STRONG></TT> 投稿者が返信するアドレス<P><BIG><STRONG>メッセージ埋め込み用</STRONG></BIG><BR><TT><STRONG><#l#></STRONG></TT> リスト名<BR><TT><STRONG><#A#></STRONG></TT> 受け取りアドレス<BR><TT><STRONG><#R#></STRONG></TT> 拒絶アドレス</UL>',
|
||||||
|
mysqlcreate => '必要ならば MySQL データベースを作成',
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# === Configuration file ends ===
|
40
ezmlm-web-3.0/spec/actions-spec.txt
Normal file
40
ezmlm-web-3.0/spec/actions-spec.txt
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
subscribers
|
||||||
|
list
|
||||||
|
[part]
|
||||||
|
address_add
|
||||||
|
list
|
||||||
|
[part]
|
||||||
|
[mailaddress_add]
|
||||||
|
[mailaddressfile]
|
||||||
|
address_del
|
||||||
|
list
|
||||||
|
[part]
|
||||||
|
mailaddress_del
|
||||||
|
list_select
|
||||||
|
list_delete_ask
|
||||||
|
list
|
||||||
|
list_delete_do
|
||||||
|
list
|
||||||
|
list_create_ask
|
||||||
|
list_create_do
|
||||||
|
list
|
||||||
|
inlocal
|
||||||
|
inhost
|
||||||
|
[options]
|
||||||
|
[sql]
|
||||||
|
config_ask
|
||||||
|
list
|
||||||
|
[config_subset]
|
||||||
|
config_do
|
||||||
|
list
|
||||||
|
[config_subset]
|
||||||
|
[options]
|
||||||
|
textfiles
|
||||||
|
list
|
||||||
|
textfile_edit
|
||||||
|
list
|
||||||
|
file
|
||||||
|
textfile_save
|
||||||
|
list
|
||||||
|
file
|
||||||
|
content
|
47
ezmlm-web-3.0/spec/hdf-spec.txt
Normal file
47
ezmlm-web-3.0/spec/hdf-spec.txt
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
ScriptName
|
||||||
|
TemplateDir
|
||||||
|
LanguageDir
|
||||||
|
Stylesheet
|
||||||
|
HelpIconURL
|
||||||
|
Config.Title
|
||||||
|
|
||||||
|
Data.Action
|
||||||
|
Data.ErrorMessage
|
||||||
|
Data.List.Address
|
||||||
|
Data.List.File.Name
|
||||||
|
Data.List.File.Content
|
||||||
|
Data.List.Files.*
|
||||||
|
Data.List.hasAllowList
|
||||||
|
Data.List.hasDenyList
|
||||||
|
Data.List.hasDigestList
|
||||||
|
Data.List.hasPostMod
|
||||||
|
Data.List.hasRemoteAdmin
|
||||||
|
Data.List.hasSubMod
|
||||||
|
Data.List.HeaderAdd
|
||||||
|
Data.List.HeaderRemove
|
||||||
|
Data.List.MimeRemove
|
||||||
|
Data.List.MimeReject
|
||||||
|
Data.List.MsgSize.Max
|
||||||
|
Data.List.MsgSize.Min
|
||||||
|
Data.List.Name
|
||||||
|
Data.List.PartType
|
||||||
|
Data.List.PostModPath
|
||||||
|
Data.List.Options
|
||||||
|
Data.List.Options.[0-9]
|
||||||
|
Data.List.Prefix
|
||||||
|
Data.List.RemoteAdminPath
|
||||||
|
Data.List.Settings.[0-9].value
|
||||||
|
Data.List.Settings.[0-9].state
|
||||||
|
Data.List.SubModPath
|
||||||
|
Data.List.Subscribers.*
|
||||||
|
Data.List.TrailingText
|
||||||
|
Data.List.WebUsers
|
||||||
|
Data.Lists.[0-9]+
|
||||||
|
Data.ListsCount
|
||||||
|
Data.HostName
|
||||||
|
Data.Modules.MySQL
|
||||||
|
Data.Permissions.Create
|
||||||
|
Data.Permissions.FileUpload
|
||||||
|
Data.UserName
|
||||||
|
Data.WebUser.show
|
||||||
|
Data.WebUser.UserName
|
31
ezmlm-web-3.0/template/config_admin.cs
Normal file
31
ezmlm-web-3.0/template/config_admin.cs
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ConfigAdmin) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<p><?cs var:html_escape(Lang.Introduction.ConfigAdmin) ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.ConfigAdmin) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="config_subset" value="admin" />
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><?cs call:checkbox("r") ?></li>
|
||||||
|
<li><?cs call:checkbox("l") ?></li>
|
||||||
|
<li><?cs call:checkbox("n") ?></li>
|
||||||
|
<li><?cs call:setting("8") ?></li>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
32
ezmlm-web-3.0/template/config_archive.cs
Normal file
32
ezmlm-web-3.0/template/config_archive.cs
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ConfigArchive) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<p><?cs var:html_escape(Lang.Introduction.ConfigArchive) ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.ConfigArchive) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="config_subset" value="archive" />
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><?cs call:checkbox("a") ?></li>
|
||||||
|
<li><?cs call:checkbox("p") ?></li>
|
||||||
|
<li><?cs call:checkbox("b") ?></li>
|
||||||
|
<li><?cs call:checkbox("g") ?></li>
|
||||||
|
<li><?cs call:checkbox("i") ?></li>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
86
ezmlm-web-3.0/template/config_filter.cs
Normal file
86
ezmlm-web-3.0/template/config_filter.cs
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ConfigFilter) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<p><?cs var:html_escape(Lang.Introduction.ConfigFilter) ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.ConfigFilter) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="config_subset" value="filter" />
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<!-- 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) ?><ul>
|
||||||
|
<!-- turn off mimermove, if "-x" 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 ?>
|
||||||
|
|
||||||
|
<!-- from address -->
|
||||||
|
<li><?cs call:setting("3") ?></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.MimeRemove) ?>:<br/>
|
||||||
|
<textarea name="mimeremove" rows="4" cols="70"><?cs
|
||||||
|
var:html_escape(Data.List.MimeRemove) ?></textarea></li>
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
|
||||||
|
<!-- 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>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<?cs include:TemplateDir + '/help_tag_susbtitution.cs' ?>
|
41
ezmlm-web-3.0/template/config_main.cs
Normal file
41
ezmlm-web-3.0/template/config_main.cs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ConfigMain) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<p><?cs var:html_escape(Lang.Introduction.ConfigMain) ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.ConfigMain) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="config_subset" value="main" />
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><?cs call:checkbox("p") ?></li>
|
||||||
|
<li><?cs call:checkbox("q") ?></li>
|
||||||
|
<li><?cs call:checkbox("w") ?></li>
|
||||||
|
<li><?cs call:setting("5") ?></li>
|
||||||
|
<li><?cs call:setting("0") ?></li>
|
||||||
|
<?cs if:Data.Modules.mySQL ?>
|
||||||
|
<li><?cs call:setting("6") ?></li><?cs /if ?>
|
||||||
|
|
||||||
|
<?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>
|
45
ezmlm-web-3.0/template/config_posting.cs
Normal file
45
ezmlm-web-3.0/template/config_posting.cs
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ConfigPosting) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<p><?cs var:html_escape(Lang.Introduction.ConfigPosting) ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.ConfigPosting) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="config_subset" value="posting" />
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<!-- 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") ?>
|
||||||
|
<ul>
|
||||||
|
<!-- only moderators may post -->
|
||||||
|
<li><?cs call:checkbox("o") ?></li>
|
||||||
|
|
||||||
|
<!-- nesage moderator -->
|
||||||
|
<li><?cs call:setting("7") ?></li>
|
||||||
|
</ul></li>
|
||||||
|
|
||||||
|
<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>
|
32
ezmlm-web-3.0/template/config_subscription.cs
Normal file
32
ezmlm-web-3.0/template/config_subscription.cs
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ConfigSub) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<p><?cs var:html_escape(Lang.Introduction.ConfigSub) ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.ConfigSub) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="config_subset" value="subscription" />
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><?cs call:checkbox("p") ?></li>
|
||||||
|
<li><?cs call:checkbox("h") ?></li>
|
||||||
|
<li><?cs call:checkbox("j") ?></li>
|
||||||
|
<li><?cs call:checkbox("s") ?></li>
|
||||||
|
<li><?cs call:setting("8") ?></li>
|
||||||
|
|
||||||
|
<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>
|
8
ezmlm-web-3.0/template/footer.cs
Normal file
8
ezmlm-web-3.0/template/footer.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
<div id="footer">
|
||||||
|
<a href="https://systemausfall.org/toolforge/ezmlm-web">ezmlm-web</a> (v3.0) - <?cs var:html_escape(Lang.Misc.FooterText) ?> <a href="http://www.ezmlm.org/" target="_blank">ezmlm</a>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
9
ezmlm-web-3.0/template/form_common.cs
Normal file
9
ezmlm-web-3.0/template/form_common.cs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<!-- this file should be included in every form with checkboxes and settings -->
|
||||||
|
|
||||||
|
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
|
||||||
|
|
||||||
|
<!-- "available_options" is filled by the checkbox macro -->
|
||||||
|
<input type="hidden" name="options_available" value="<?cs var:available_options ?>" />
|
||||||
|
<!-- "available_settings" is filled by the setting macro -->
|
||||||
|
<input type="hidden" name="settings_available" value="<?cs var:available_settings ?>" />
|
||||||
|
|
25
ezmlm-web-3.0/template/header.cs
Normal file
25
ezmlm-web-3.0/template/header.cs
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html
|
||||||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title><?cs var:Config.PageTitle ?></title>
|
||||||
|
<meta http-equiv="pragma" content="no-cache" /> <!-- for browsers -->
|
||||||
|
<meta http-equiv="cache-control" content="no-cache" /> <!-- for proxys -->
|
||||||
|
<meta http-equiv="content-language" content="<?cs var:html_escape(Language) ?>" />
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta http-equiv="Author" content="guy-ezmlm[at]rucus.ru.ac.za" />
|
||||||
|
<meta http-equiv="expire" content="-1d" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="<?cs var:Stylesheet ?>" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="oben">
|
||||||
|
<div id="perm_nav">
|
||||||
|
<?cs var:Config.PageTitle ?>
|
||||||
|
</div>
|
||||||
|
<h1 class="oben">ezmlm-web</h1>
|
||||||
|
</div>
|
||||||
|
|
21
ezmlm-web-3.0/template/help_tag_substitution.cs
Normal file
21
ezmlm-web-3.0/template/help_tag_substitution.cs
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<fieldset class="info">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.TextFileInfo) ?> </legend>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.EditFileInfo.CommonTags) ?><ul>
|
||||||
|
<li><tt><#l#></tt> <?cs var:html_escape(Lang.Misc.EditFileInfo.ListNameLocal) ?></li>
|
||||||
|
<li><tt><#h#></tt> <?cs var:html_escape(Lang.Misc.EditFileInfo.ListNameHost) ?></li>
|
||||||
|
<li><tt><#n#></tt> <?cs var:html_escape(Lang.Misc.EditFileInfo.ListNameHost) ?></li>
|
||||||
|
</ul></li>
|
||||||
|
<li>ezmlm-manage<ul>
|
||||||
|
<li><tt><#A#></tt> <?cs var:html_escape(Lang.Misc.EditFileInfo.SubAddress) ?></li>
|
||||||
|
<li><tt><#R#></tt> <?cs var:html_escape(Lang.Misc.EditFileInfo.SubReplyAddress) ?></li>
|
||||||
|
</ul></li>
|
||||||
|
<li>ezmlm-store<ul>
|
||||||
|
<li><tt><#A#></tt> <?cs var:html_escape(Lang.Misc.EditFileInfo.AcceptanceAddress) ?></li>
|
||||||
|
<li><tt><#R#></tt> <?cs var:html_escape(Lang.Misc.EditFileInfo.RejectionAddress) ?></li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
|
48
ezmlm-web-3.0/template/list_create.cs
Normal file
48
ezmlm-web-3.0/template/list_create.cs
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ListCreate) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.ListCreate) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<ul>
|
||||||
|
<li><label for="listname"><?cs var:html_escape(Lang.Misc.ListName) ?>:</label>
|
||||||
|
<input type="text" name="list" id="listname" size="25"></li>
|
||||||
|
|
||||||
|
<li><label for="listaddress"><?cs var:html_escape(Lang.Misc.ListAddress) ?>:</label>
|
||||||
|
<input type="text" id="listaddress" name="inlocal" size="20"
|
||||||
|
value="<?cs var:html_escape(Data.UserName)
|
||||||
|
?>"> @ <input type="text" name="inhost" size="30" value="<?cs
|
||||||
|
var:html_escape(Data.HostName) ?>"></li>
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.ListOptions) ?>:
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><?cs call:checkbox("p") ?></li>
|
||||||
|
<li><?cs call:checkbox("a") ?></li>
|
||||||
|
<li><?cs call:checkbox("u") ?></li>
|
||||||
|
<li><?cs call:checkbox("d") ?></li>
|
||||||
|
|
||||||
|
<?cs if:Data.Modules.MySQL ?>
|
||||||
|
<!-- Allow creation of mysql table if the module allows it -->
|
||||||
|
<li><?cs call:setting("6") ?></li><?cs /if ?>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<?cs if:Data.WebUser.show ?>
|
||||||
|
<li><label for="webusers"><?cs var:html_escape(Lang.Misc.AllowedToEdit) ?>:</label>
|
||||||
|
<ul><li><input type="text" id="webusers"
|
||||||
|
name="webusers" size="30" value="<?cs
|
||||||
|
var:html_escape(Data.WebUser.UserName) ?>"></li></ul></li>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- include default form values -->
|
||||||
|
<?cs include:TemplateDir + '/form_common.cs' ?>
|
||||||
|
|
||||||
|
<input type="hidden" name="action" value="list_create_do" />
|
||||||
|
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.Create) ?></button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</fieldset>
|
14
ezmlm-web-3.0/template/list_delete.cs
Normal file
14
ezmlm-web-3.0/template/list_delete.cs
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ConfirmDelete) ?> <i><?cs var:html_escape(Data.List.Name) ?></i></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
|
||||||
|
<?cs if:Data.List.PartType ?>
|
||||||
|
<input type="hidden" name="part" value="<?cs var:Data.List.PartType ?>" />
|
||||||
|
<?cs /if?>
|
||||||
|
|
||||||
|
<input type="hidden" name="action" value="list_delete_do" />
|
||||||
|
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.ConfirmDeletion) ?></button>
|
||||||
|
</form>
|
||||||
|
|
39
ezmlm-web-3.0/template/list_select.cs
Normal file
39
ezmlm-web-3.0/template/list_select.cs
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.ListSelect) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>
|
||||||
|
<?cs var:html_escape(Lang.Legend.AvailableLists) ?>
|
||||||
|
</legend>
|
||||||
|
|
||||||
|
<!-- to get a multiple-columns-design, we do strange things ... -->
|
||||||
|
<?cs set:listnum=subcount(Data.Lists) ?>
|
||||||
|
|
||||||
|
<?cs if:listnum > 0 ?>
|
||||||
|
|
||||||
|
<?cs if:listnum < 20 ?><?cs set:columns=1 ?><?cs
|
||||||
|
elif:listnum < 40 ?><?cs set:columns=2 ?><?cs
|
||||||
|
else ?><?cs set:columns=3 ?><?cs /if ?>
|
||||||
|
<?cs set:col_len=listnum / columns ?>
|
||||||
|
<?cs if:listnum % columns > 0 ?><?cs set:col_len = col_len + #1 ?><?cs /if ?>
|
||||||
|
|
||||||
|
<table class="list_select">
|
||||||
|
<?cs loop: x = #0, col_len-1, #1 ?>
|
||||||
|
<tr>
|
||||||
|
<?cs loop: y = #0, columns-1, #1 ?>
|
||||||
|
<td>
|
||||||
|
<?cs set:listname = Data.Lists[y * col_len + x] ?><?cs
|
||||||
|
if:listname ?><a href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(listname) ?>&action=subscribers" title="<?cs var:html_escape(listname) ?>"><?cs call:limit_string_len(html_escape(listname),18) ?></a>
|
||||||
|
<?cs /if ?>
|
||||||
|
</td>
|
||||||
|
<?cs /loop ?>
|
||||||
|
</tr>
|
||||||
|
<?cs /loop ?>
|
||||||
|
</table>
|
||||||
|
<?cs else ?>
|
||||||
|
<p><?cs var:html_escape(Lang.Misc.NoListsAvailable) ?></p>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
|
53
ezmlm-web-3.0/template/macros.cs
Normal file
53
ezmlm-web-3.0/template/macros.cs
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
<?cs def:checkbox(option)
|
||||||
|
?><?cs if:Lang.Options[option]
|
||||||
|
?><input type="checkbox" name="option_<?cs var:option ?>"
|
||||||
|
id="option_<?cs var:option ?>" value="selected" <?cs
|
||||||
|
if:(Data.List.Options[option] == 1) ?>checked="checked"<?cs /if ?> />
|
||||||
|
<label for="option_<?cs var:option ?>"><?cs var:html_escape(Lang.Options[option])
|
||||||
|
?></label><?cs
|
||||||
|
set:available_options = available_options + option ?><?cs
|
||||||
|
else ?>unknown option (<?cs var:option ?>)<?cs /if ?><?cs
|
||||||
|
/def ?>
|
||||||
|
|
||||||
|
<?cs def:setting(setting)
|
||||||
|
?><?cs if:Lang.Settings[setting]
|
||||||
|
?><input type="checkbox" name="setting_state_<?cs var:setting
|
||||||
|
?>" id="setting_state_<?cs var:setting ?>" value="selected" <?cs
|
||||||
|
if:(Data.List.Settings[setting].state == 1) ?>checked="checked"<?cs /if ?> />
|
||||||
|
<label for="setting_state_<?cs var:setting ?>"><?cs
|
||||||
|
var:html_escape(Lang.Settings[setting]) ?></label>
|
||||||
|
<ul><li><input type="text" name="setting_value_<?cs var:setting
|
||||||
|
?>" id="setting_value_<?cs var:setting ?>" value="<?cs
|
||||||
|
var:html_escape(Data.List.Settings[setting].value) ?>" size="30" /></li></ul><?cs
|
||||||
|
set:available_settings = available_settings + setting ?><?cs
|
||||||
|
else ?>unknown setting (<?cs var:setting ?>)<?cs /if ?><?cs
|
||||||
|
/def ?>
|
||||||
|
|
||||||
|
<?cs def:warning(warntext)
|
||||||
|
?><div class="warning">
|
||||||
|
<?cs alt:warntext ?>unknown warning message (<?cs
|
||||||
|
var:Data.Warning ?>)<?cs /alt ?>
|
||||||
|
</div><?cs
|
||||||
|
/def ?>
|
||||||
|
|
||||||
|
<?cs def:error(errtext)
|
||||||
|
?><div class="error">
|
||||||
|
<?cs alt:errtext ?>unknown error message (<?cs
|
||||||
|
var:Data.Error ?>)<?cs /alt ?>
|
||||||
|
</div><?cs
|
||||||
|
/def ?>
|
||||||
|
|
||||||
|
<?cs def:success(succtext)
|
||||||
|
?><div class="success">
|
||||||
|
<?cs alt:succtext ?>unknown success message (<?cs
|
||||||
|
var:Data.Success ?>)<?cs /alt ?>
|
||||||
|
</div><?cs
|
||||||
|
/def ?>
|
||||||
|
|
||||||
|
<?cs def:limit_string_len(text,limit)
|
||||||
|
?><?cs set:text2 = text ?><?cs set:len = string.length(text2) ?><?cs
|
||||||
|
if:len > limit ?><?cs
|
||||||
|
var:string.slice(text,0,limit / #2 + limit % #2 - 1) ?>...<?cs
|
||||||
|
var:string.slice(text,len - limit / #2 + #3 - #1, len) ?><?cs
|
||||||
|
else ?><?cs var:text ?><?cs /if ?><?cs
|
||||||
|
/def ?>
|
21
ezmlm-web-3.0/template/main.cs
Normal file
21
ezmlm-web-3.0/template/main.cs
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<!-- $Id$ -->
|
||||||
|
|
||||||
|
<?cs include:TemplateDir + '/macros.cs' ?>
|
||||||
|
<?cs include:TemplateDir + '/header.cs' ?>
|
||||||
|
|
||||||
|
<!-- this ezmlm-web template follows: <?cs var:Data.Action ?> -->
|
||||||
|
|
||||||
|
<?cs include:TemplateDir + '/nav.cs' ?>
|
||||||
|
<div id="main_content">
|
||||||
|
<?cs if:Data.List.Name ?><div id="info_title"><?cs var:Data.List.Name ?> - <?cs
|
||||||
|
var:Data.List.Address ?></div><?cs /if ?>
|
||||||
|
<?cs if:Data.Error ?><?cs call:error(Lang.ErrorMessage[Data.Error]) ?><?cs /if ?>
|
||||||
|
<?cs if:Data.customError ?><?cs call:error(Data.customError) ?><?cs /if ?>
|
||||||
|
<?cs if:Data.Warning ?><?cs call:warning(Lang.WarningMessage[Data.Warning]) ?><?cs /if ?>
|
||||||
|
<?cs if:Data.customWarning ?><?cs call:warning(Data.customWarning) ?><?cs /if ?>
|
||||||
|
<?cs if:Data.Success ?><?cs call:success(Lang.SuccessMessage[Data.Success]) ?><?cs /if ?>
|
||||||
|
<?cs include:TemplateDir + '/' + Data.Action + '.cs' ?>
|
||||||
|
</div> <!-- end of main_content -->
|
||||||
|
|
||||||
|
<?cs include:TemplateDir + '/footer.cs' ?>
|
||||||
|
|
20
ezmlm-web-3.0/template/modpath_info.cs
Normal file
20
ezmlm-web-3.0/template/modpath_info.cs
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<!-- posting moderation -->
|
||||||
|
<?cs if:Data.List.PostModPath ?>
|
||||||
|
<div class="warning">
|
||||||
|
<?cs var:html_escape(Lang.Misc.PostModPathWarn) ?> (<?cs var:Data.List.PostModPath ?>).<br/><?cs var:html_escape(Lang.Misc.SuggestDefaultPath) ?>
|
||||||
|
</div>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
<!-- subscription moderation -->
|
||||||
|
<?cs if:Data.List.SubModPath ?>
|
||||||
|
<div class="warning">
|
||||||
|
<?cs var:html_escape(Lang.Misc.SubModPathWarn) ?> (<?cs var:Data.List.SubModPath ?>).<br/><?cs var:html_escape(Lang.Misc.SuggestDefaultPath) ?>
|
||||||
|
</div>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
<!-- remote administration -->
|
||||||
|
<?cs if:Data.List.RemoteAdminPath ?>
|
||||||
|
<div class="warning">
|
||||||
|
<?cs var:html_escape(Lang.Misc.RemoteAdminPathWarn) ?> (<?cs var:Data.List.RemoteAdminPath ?>).<br/><?cs var:html_escape(Lang.Misc.SuggestDefaultPath) ?>
|
||||||
|
</div>
|
||||||
|
<?cs /if ?>
|
71
ezmlm-web-3.0/template/nav.cs
Normal file
71
ezmlm-web-3.0/template/nav.cs
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
<!-- $Id$ -->
|
||||||
|
|
||||||
|
<div id="nav_bar">
|
||||||
|
<ul>
|
||||||
|
<?cs if:(subcount(Data.Lists) > 0) ?>
|
||||||
|
<li><a <?cs if:(Data.Action == "list_select") ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?action=list_select"
|
||||||
|
title="<?cs var:html_escape(Lang.Menue.ListSelect) ?>"><?cs var:html_escape(Lang.Menue.ListSelect) ?></a>
|
||||||
|
</li>
|
||||||
|
<?cs /if ?>
|
||||||
|
<?cs if:Data.Permissions.Create ?>
|
||||||
|
<li><a <?cs if:(Data.Action == "list_create") ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?action=list_create_ask"
|
||||||
|
title="<?cs var:html_escape(Lang.Menue.Create) ?>"><?cs var:html_escape(Lang.Menue.Create) ?></a>
|
||||||
|
</li>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
|
||||||
|
<?cs if:Data.List.Name ?>
|
||||||
|
|
||||||
|
<li><font class="no_link"><?cs var:html_escape(Lang.Menue.Properties) ?> <?cs call:limit_string_len(html_escape(Data.List.Name),25) ?></font><ul>
|
||||||
|
<li><a <?cs if:((Data.Action == "subscribers") && ((Data.List.PartType == "") || !Data.List.PartType)) ?>class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=subscribers" title="<?cs var:html_escape(Lang.Menue.Subscribers) ?>"><?cs var:html_escape(Lang.Menue.Subscribers) ?></a>
|
||||||
|
<ul>
|
||||||
|
<li><a <?cs if:((Data.Action == "subscribers") &&
|
||||||
|
(Data.List.PartType == "allow")) ?>class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=subscribers&part=allow"><?cs var:html_escape(Lang.Menue.AllowList) ?></a></li>
|
||||||
|
<li><a <?cs if:((Data.Action == "subscribers") &&
|
||||||
|
(Data.List.PartType == "deny")) ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=subscribers&part=deny"><?cs var:html_escape(Lang.Menue.DenyList) ?></a></li>
|
||||||
|
<li><a <?cs if:((Data.Action == "subscribers") &&
|
||||||
|
(Data.List.PartType == "digest")) ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=subscribers&part=digest"><?cs var:html_escape(Lang.Menue.DigestList) ?></a></li>
|
||||||
|
<li><a <?cs if:((Data.Action == "subscribers") &&
|
||||||
|
(Data.List.PartType == "mod")) ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=subscribers&part=mod"><?cs var:html_escape(Lang.Menue.ModList) ?></a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><a <?cs if:(Data.Action == "config_main") ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=config_ask&config_subset=main" title="<?cs var:html_escape(Lang.Menue.ConfigMain) ?>"><?cs var:html_escape(Lang.Menue.ConfigMain) ?></a>
|
||||||
|
<ul>
|
||||||
|
<li><a <?cs if:(Data.Action == "config_subscription") ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=config_ask&config_subset=subscription" title="<?cs var:html_escape(Lang.Menue.ConfigSub) ?>"><?cs var:html_escape(Lang.Menue.ConfigSub) ?></a></li>
|
||||||
|
<li><a <?cs if:(Data.Action == "config_posting") ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=config_ask&config_subset=posting" title="<?cs var:html_escape(Lang.Menue.ConfigPost) ?>"><?cs var:html_escape(Lang.Menue.ConfigPost) ?></a></li>
|
||||||
|
<li><a <?cs if:(Data.Action == "config_filter") ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=config_ask&config_subset=filter" title="<?cs var:html_escape(Lang.Menue.ConfigFilter) ?>"><?cs var:html_escape(Lang.Menue.ConfigFilter) ?></a></li>
|
||||||
|
<li><a <?cs if:(Data.Action == "config_archive") ?> class="nav_active"<?cs /if ?>
|
||||||
|
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 ?>
|
||||||
|
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>
|
||||||
|
</ul></li>
|
||||||
|
|
||||||
|
<li><a <?cs if:((Data.Action == "textfiles") || (Data.Action == "textfile_edit")) ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=textfiles" title="<?cs var:html_escape(Lang.Menue.TextFiles) ?>"><?cs var:html_escape(Lang.Menue.TextFiles) ?></a></li>
|
||||||
|
|
||||||
|
<li><a <?cs if:(Data.Action == "list_delete") ?> class="nav_active"<?cs /if ?>
|
||||||
|
href="<?cs var:ScriptName ?>?list=<?cs var:url_escape(Data.List.Name) ?>&action=list_delete_ask" title="<?cs var:html_escape(Lang.Menue.Delete) ?>"><?cs var:html_escape(Lang.Menue.Delete) ?></a></li>
|
||||||
|
|
||||||
|
</ul></li>
|
||||||
|
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
<li><a href="http://www.ezmlm.org/ezman/index.html#toc1" target="_blank" title="<?cs var:html_escape(Lang.Misc.HelpLink) ?>"><?cs var:html_escape(Lang.Menue.Help) ?></a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- end of navbar div -->
|
||||||
|
</div>
|
||||||
|
|
126
ezmlm-web-3.0/template/subscribers.cs
Normal file
126
ezmlm-web-3.0/template/subscribers.cs
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1>
|
||||||
|
<?cs if:(Data.List.PartType == "allow") ?> <?cs var:html_escape(Lang.Title.AllowList) ?>
|
||||||
|
<?cs elif:(Data.List.PartType == "deny") ?> <?cs var:html_escape(Lang.Title.DenyList) ?>
|
||||||
|
<?cs elif:(Data.List.PartType == "digest") ?><?cs var:html_escape(Lang.Title.DigestList) ?>
|
||||||
|
<?cs elif:(Data.List.PartType == "mod") ?> <?cs var:html_escape(Lang.Title.ModList) ?>
|
||||||
|
<?cs else ?> <?cs var:html_escape(Lang.Title.SubscriberList) ?>
|
||||||
|
<?cs /if ?>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<p>
|
||||||
|
<?cs if:(Data.List.PartType == "allow") ?> <?cs var:html_escape(Lang.Introduction.AllowList) ?>
|
||||||
|
<?cs elif:(Data.List.PartType == "deny") ?> <?cs var:html_escape(Lang.Introduction.DenyList) ?>
|
||||||
|
<?cs elif:(Data.List.PartType == "digest") ?><?cs var:html_escape(Lang.Introduction.DigestList) ?>
|
||||||
|
<?cs elif:(Data.List.PartType == "mod") ?> <?cs var:html_escape(Lang.Introduction.ModList) ?>
|
||||||
|
<?cs else ?> <?cs var:html_escape(Lang.Introduction.SubscriberList) ?>
|
||||||
|
<?cs /if ?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?cs if:Data.List.PartType == 'mod' ?>
|
||||||
|
<!-- show warnings for wrong moderation paths -->
|
||||||
|
<?cs include:TemplateDir + "modpath_info.cs" ?>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
|
||||||
|
<?cs if:((Data.List.PartType == "digest") || (Data.List.PartType == "deny") || (Data.List.PartType == 'mod')) ?>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.RelevantOptions) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
|
||||||
|
<input type="hidden" name="part" value="<?cs var:Data.List.PartType ?>" />
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<?cs if:(Data.List.PartType == "digest") ?>
|
||||||
|
<li><?cs call:checkbox("d") ?></li>
|
||||||
|
<li><?cs call:setting("4") ?></li>
|
||||||
|
<?cs elif:(Data.List.PartType == "deny") ?>
|
||||||
|
<li><?cs call:checkbox("k") ?></li>
|
||||||
|
<?cs elif:(Data.List.PartType == "mod") ?>
|
||||||
|
<li><?cs call:setting("7") ?></li>
|
||||||
|
<li><?cs call:setting("8") ?></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>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- check, if we should display a subscribers list -->
|
||||||
|
<?cs if:!Data.List.PartType || (Data.List.PartType == '') ||
|
||||||
|
(Data.List.PartType == 'allow') ||
|
||||||
|
(Data.List.PartType == 'mod') ||
|
||||||
|
((Data.List.PartType == 'deny') && (Data.List.Options.k == 1)) ||
|
||||||
|
((Data.List.PartType == 'digest') && (Data.List.Options.d == 1)) ?>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend>
|
||||||
|
<?cs if:(Data.List.PartType == "allow") ?> <?cs var:html_escape(Lang.Legend.MembersAllow) ?>
|
||||||
|
<?cs elif:(Data.List.PartType == "deny") ?> <?cs var:html_escape(Lang.Legend.MembersDeny) ?>
|
||||||
|
<?cs elif:(Data.List.PartType == "digest") ?><?cs var:html_escape(Lang.Legend.MembersDigest) ?>
|
||||||
|
<?cs elif:(Data.List.PartType == "mod") ?> <?cs var:html_escape(Lang.Legend.MembersMod) ?>
|
||||||
|
<?cs else ?> <?cs var:html_escape(Lang.Legend.MembersList) ?>
|
||||||
|
<?cs /if ?>
|
||||||
|
</legend>
|
||||||
|
|
||||||
|
<!-- this form has to be "multipart/form-data" to make file upload work -->
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="multipart/form-data">
|
||||||
|
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
|
||||||
|
<?cs if:Data.List.PartType ?>
|
||||||
|
<input type="hidden" name="part" value="<?cs var:Data.List.PartType ?>" />
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
<table class="subscribers"><tr>
|
||||||
|
<?cs if:subcount(Data.List.Subscribers) > 0 ?>
|
||||||
|
<td><ul>
|
||||||
|
<!-- scrollbox for list's subscribers -->
|
||||||
|
<!-- Keep selection box a reasonable size - suggested by Sebastian Andersson -->
|
||||||
|
<?cs if:subcount(Data.List.Subscribers) > 15 ?>
|
||||||
|
<?cs set:Data.ScrollSize = 15 ?>
|
||||||
|
<?cs else ?>
|
||||||
|
<?cs set:Data.ScrollSize = subcount(Data.List.Subscribers) ?>
|
||||||
|
<?cs /if ?>
|
||||||
|
<li><select name="mailaddress_del"
|
||||||
|
size="<?cs var:Data.ScrollSize ?>" multiple="multiple">
|
||||||
|
<?cs each:item = Data.List.Subscribers ?>
|
||||||
|
<option><?cs var:item ?></option>
|
||||||
|
<?cs /each ?>
|
||||||
|
</select></li>
|
||||||
|
<li><?cs var:subcount(Data.List.Subscribers) ?> <?cs var:html_escape(Lang.Misc.Subscribers) ?></li>
|
||||||
|
<li><input type="hidden" name="action" value="address_del" />
|
||||||
|
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.DeleteAddress) ?></button></li>
|
||||||
|
</ul></td>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
<td><ul>
|
||||||
|
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.AddSubscriberAddress) ?>
|
||||||
|
<ul><li><input type="text" name="mailaddress_add" size="40" /></li>
|
||||||
|
</ul></li>
|
||||||
|
<?cs if:Data.Permissions.FileUpload ?>
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.AddSubscriberFile) ?>
|
||||||
|
<ul><li><input type="file" name="mailaddressfile" size="20"
|
||||||
|
maxlength="200" /></li>
|
||||||
|
</ul></li>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
<li><input type="hidden" name="action" value="address_add" />
|
||||||
|
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.AddAddress) ?></button></li>
|
||||||
|
</ul></td></tr></table>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<?cs /if ?>
|
||||||
|
|
24
ezmlm-web-3.0/template/textfile_edit.cs
Normal file
24
ezmlm-web-3.0/template/textfile_edit.cs
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.FileEdit) ?> "<?cs var:Data.List.File.Name ?>"</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<?cs var:html_escape(Lang.Introduction.EditTextFile) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.TextFileEdit) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>">
|
||||||
|
<input type="hidden" name="file" value="<?cs var:Data.List.File.Name ?>">
|
||||||
|
|
||||||
|
<p><textarea name="content" rows="7"
|
||||||
|
cols="72"><?cs var:Data.List.File.Content ?></textarea></p>
|
||||||
|
|
||||||
|
<input type="hidden" name="action" value="textfile_save" />
|
||||||
|
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.SaveFile) ?></button>
|
||||||
|
</form>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<?cs include:TemplateDir + '/help_tag_substitution.cs' ?>
|
39
ezmlm-web-3.0/template/textfiles.cs
Normal file
39
ezmlm-web-3.0/template/textfiles.cs
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<div class="title">
|
||||||
|
<h1><?cs var:html_escape(Lang.Title.FileSelect) ?></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="introduction">
|
||||||
|
<?cs var:html_escape(Lang.Introduction.TextFiles) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<fieldset class="form">
|
||||||
|
<legend><?cs var:html_escape(Lang.Legend.TextFiles) ?> </legend>
|
||||||
|
|
||||||
|
<form method="post" action="<?cs var:ScriptName ?>" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<?cs if:subcount(Data.List.Files) > 0 ?>
|
||||||
|
<!-- scrollbox for list's subscribers -->
|
||||||
|
<!-- Keep selection box a reasonable size - suggested by Sebastian Andersson -->
|
||||||
|
<?cs if:subcount(Data.List.Files) > 15 ?>
|
||||||
|
<?cs set:Data.ScrollSize = 15 ?>
|
||||||
|
<?cs else ?>
|
||||||
|
<?cs set:Data.ScrollSize = subcount(Data.List.Files) ?>
|
||||||
|
<?cs /if ?>
|
||||||
|
<li><select name="file" size="<?cs var:Data.ScrollSize ?>">
|
||||||
|
<?cs each:item = Data.List.Files ?>
|
||||||
|
<option><?cs var:item ?></option>
|
||||||
|
<?cs /each ?>
|
||||||
|
</select></li>
|
||||||
|
<?cs else ?>
|
||||||
|
<li><?cs var:html_escape(Lang.Misc.NoFiles) ?></li>
|
||||||
|
<?cs /if ?>
|
||||||
|
|
||||||
|
<li><input type="hidden" name="action" value="textfile_edit" />
|
||||||
|
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.EditFile) ?></button></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</fieldset>
|
||||||
|
|
5
ezmlm-web-3.0/webusers.sample
Normal file
5
ezmlm-web-3.0/webusers.sample
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
comm: guy, arb
|
||||||
|
users: arb
|
||||||
|
members: ALL
|
||||||
|
ALL: root
|
||||||
|
ALLOW_CREATE: root, guy
|
Loading…
Reference in a new issue