[Mailman3-dev] Mailman Design
Ian A B Eiloart
iane at sussex.ac.uk
Wed Apr 21 08:08:21 EDT 2004
>>> However, the question is really what power we'll give users to change
>>> the u/i through the web. Site admins with access to the file system
>>> will definitely be able to heavily modify the u/i to their heart's
>>> content.
>>
>> That'll do me, provided that the templates aren't touched during an
>> upgrade.
>
> A good principle but one that begs the question of what policy to apply
> where the whole point of an update is to introduce changed functionality
> which is only available through the templates; err that's everything, is
> it not.
Ah, good point. Here's how I might approach the problem:
Often what I want to do is change the descriptive text - for example I need
to tell local staff which of their several email addresses they should
subscribe with, so I add instructions above the appropriate slot.
Perhaps the answer is to parameterise text descriptions, such that one file
can contain default text, and a site specific file can override those
defaults. That way, a 'template' wouldn't be plain html, but rather a
python script which generated html.
New functionality would imply new parameters with new defaults. The texts
might be edited through the web, and might contain simple formatting
(lists, emphasis, etc). You could even let admins include and exclude
certain interface elements through the web (like password reminder choices,
for example). Again, there could be default and override settings for
inclusion of elements, but addition of new elements would mean changing a
default settings file, whereas site specific settings would be unaffected:
So, a 'template' for a sign-on page might look like this pseudo-code:
> read /local/mailman/defaults/sign-on.settings
> read ${local-settings-path}/styles/${list.style}/sign-on.settings
> read ${local-settings-path)/lists/${list.name}/sign-on.settings
>
> if ($sign-on.digest_allowed)
> echo $sign-on.digest_instructions
> echo $sign-on.digest_interface
> endif
if fact, if you paramaterised the interface element, then admins could
choose to change, say, a drop down list into a set of radio buttons.
The default sign-on.settings might contain:
$sign-on.digest_allowed = true
$sign-on.digest_instructions = "Get $list-digest-frequency digests"
$sign-on.digest_interface = "<input type=checkbox name=digest
value=$list-digest-default>"
Whereas the sitewide settings file may contain:
$sign-on.digest_instructions = "Get $list-digest-frequency digests. <a
href=blah>click here</a> for our digest policy."
And the list specific settings file may say:
$sign-on.digest_allowed = false
Now, most people wouldn't want to touch the "interface" settings, but many
may want to change the descriptions.
The list specific "allowed" settings would largely be controlled by the
list policy settings. However, it would be possible to permit styles by
providing several site wide settings files.
--
Ian Eiloart
Servers Team
Sussex University ITS
More information about the Mailman3-Dev
mailing list