part of the ArsDigita Community System
by Philip Greenspun
The Big Idea
If we're commercial, we want to know how much to charge each user at the
end of each month. If we're non-commercial, we want to use
pseudo-dollars to track those members who are imposing a burden on the
community (e.g., by posting off-topic questions in a discussion forum).
Rates and policies are kept in the "acs/member-value" section of the
/parameters/ad.ini file. I'm not 100% happy about this because I think
that some Oracle-based accounting software might need to check rates.
It also keeps simple Oracle triggers from adding charges. But on
balance, I thought it was more important to be consistent with the
ad.ini religion of the ArsDigita Community System. None of the pages
that use member value depend explicitly on rates being stored in a .ini
file. Instead of using
ad_parameter to check a rate, they
mv_parameter (defined in /tcl/ad-member-value).
A non-commercial site
A site like photo.net that is non-commercial but wishes to keep track of
who has cost the community how much needs the following tables:
- users_orders (because users_charges references it)