|
|
|
|
File: [Development] / advokit-installer / advokit.ini.tpl
(download)
Revision: 1.37, Sun Apr 23 18:14:48 2006 UTC (4 years, 4 months ago) by patdunlavey Branch: MAIN CVS Tags: r1-x-dev, HEAD Changes since 1.36: +8 -1 lines Prettifying the teamjob details page. Also added count-down to the time that polls open to the teamjob, team and operation details pages. This required modifying the EditOperation page so that you can specify the time that polls open. The time of day is just appended to the _operation.election_date in the hours portion of the string. This also necessitated creating a config variable to enable compensating for a different server time. |
; ======================================================================
; AdvoKit -- a campaign managment tool
; Copyright (C) 2004 OrchidSuites, Inc. (info@orchidsuites.net)
; Copyright (C) 2004 Dan Robinson
;
; This program is free software; you can redistribute it and/or
; modify it under the terms of the AFFERO GENERAL PUBLIC LICENSE
; as published by Affero, Inc.; either version 1
; of the License, or (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; AFFERO GENERAL PUBLIC LICENSE for more details.
;
; You should have received a copy of the AFFERO GENERAL PUBLIC LICENSE
; along with this program; if not, write to Affero, Inc. at
; 510 Third Street - Suite 225, San Francisco, CA 94107, USA
; or visit <http://www.affero.org>.
; ======================================================================
;; ======================================================================
;; Advokit initialization. Modify to suit your needs, but be careful
;; if modifying in a production environment.
;;
;; Most of the paths specified here can be anywhere in the filesystem,
;; not necessarily under the webroot.
;;
;; After you're happy with your Advokit configuration, you may wish to
;; slim down the comments for performance reasons. This file is
;; heavily commented. (need I say to keep a backup copy?)
;; ======================================================================
[paths]
; Homepage for this application
app_homepage = "{{$settings.app_homepage}}"
; Name of this application.
appname = "{{$settings.app_name}}"
; Root directory of application framework, which is called "turban"
; (private joke). Someday I'll separate it out from Advokit so you can
; use it to build your own applications.
; For maximum security, don't put turban_root under the webroot. Do
; you really want to serve out your DB connection information to the
; world?
turban_root = "{{$settings.local_approot}}"
; Root directory of web files. Must be under the webroot. Location
; of index.php, css files, images, some other stuff.
app_root = "{{$settings.webroot}}"
; Directory for scripts used to import voterfile information.
; For maximum security, don't put under the webroot.
scripts = "{{$settings.scripts}}"
; Directory for uploaded or ftp'ed voterfiles (absolute path). For
; maximum security, don't put under the webroot.
voterfiles = "{{$settings.voterfiles}}"
; Maximum size for a generated voterfile import script.
max_script_size = {{$settings.max_script_size}}
; Directory for uploaded files (absolute path). For maximum security,
; don't put under the webroot. Notice that images are slammed in with
; ordinary uploads.
uploads = "{{$settings.uploads}}"
images = "{{$settings.uploads}}"
; Directory containing action objects. For maximum security, DON'T
; put under the webroot.
actions = "{{$settings.local_approot}}{{$DIRSEP}}Actions"
; Directory containing display objects. For maximum security, DON'T
; put under the webroot.
displays = "{{$settings.local_approot}}{{$DIRSEP}}Displays"
; Directory containing HTML to include. For maximum security, DON'T
; put under the webroot.
html_includes = "{{$settings.local_approot}}{{$DIRSEP}}Html"
; Directory where CSV files are placed. This has to be under
; the webroot, sorry. Specify a RELATIVE path, please.
webcsvdir = "{{$settings.webcsvdir}}"
; Name of homepage template
homepage_template = "{{$settings.homepage_template}}"
; Names of homepage templates
homepage_activist_tpl = "homepage_activist.tpl"
homepage_admin_tpl = "homepage_admin.tpl"
homepage_anonymous_tpl = "homepage_anonymous.tpl"
[logging]
; How to do logging. Currently, only "file" is supported.
; I put this in because I may tie this into Windows event logging some
; day. Or I may allow logging to a database. (Though how would I log
; db errors?)
log_method = "file"
; Full path to log file, if "file" log_method is used.
log_file = "{{$settings.logfile}}"
; Log rotation interval
; One of: daily, monthly, never (i.e. use the same file forever)
; Nothing is actually "rotated". Instead, the server
; logs to a file named either:
; <log_file>-YYYY-MM-DD.log (if you specify daily)
; <log_file>-YYYY-MM.log (if you specify monthly)
; And the rotation "just happens".
log_rotation = "{{$settings.log_rotation}}"
; Log level == type of messages to log. Choices are 0=off, 1=error,
; 2=warn, 3=info, 4=debug
; Each number includes all those preceding. You should probably use 4
; for development and 1 or 2 for production.
log_level = {{$settings.log_level}}
[db]
; Database type, e.g. mysql, oracle, etc. Currently, only mysql is
; supported. To add a new db type, see Db.class.php and implement the
; appropriate functions. See Mysql.class.php for examples.
db_type = "{{$settings.db_type}}"
; Hostname or IP where database is physically located.
db_host = "{{$settings.db_host}}"
; Database name. For oracle, this will probably be the tnsname,
; though oracle is not yet implemented.
db_name = "{{$settings.db_name}}"
; Database username
db_user = "{{$settings.db_user}}"
; Database password
db_pass = "{{$settings.db_pass}}"
; database TCP port
db_port = "{{$settings.db_port}}"
; Prefix for database table names.
db_tblprefix = "{{$settings.db_tblprefix}}"
; Location of oracle libraries, if I ever implement Oracle.
oracle_home = ""
; TRUE => turn autocommit on
db_autocommit = {{$settings.db_autocommit}}
; Transaction Isolation Level, one of:
; "READ-UNCOMMITTED", "READ-COMMITTED", "REPEATABLE-READ", "SERIALIZABLE"
db_default_til = "{{$settings.db_default_til}}"
; TRUE => Use database transactions.
; Otherwise, don't.
db_use_transactions = {{$settings.db_use_transactions}}
; TRUE => Display javascript alert upon DB error
db_alerts = "{{$settings.db_alerts}}"
; TRUE => Send email to admin upon db errors
db_emails = "{{$settings.db_emails}}"
[display]
; Type of display if none selected
default_display_type = "{{$settings.default_display_type}}"
; Name of display if none selected
default_display = "{{$settings.default_display}}"
; Name of login display
login_display = "{{$settings.login_display}}"
; Name of notfound display (if a page cannot be found)
notfound_display = "{{$settings.notfound_display}}"
; Display to use if user was forcibly logged out.
forcedlogout_display = "{{$settings.forcedlogout_display}}"
; TRUE => return user to last display rendered prior to logout.
; Otherwise, user will be sent to the default_display.
redisplay_upon_login = {{$settings.redisplay_upon_login}}
; Maximum number of records to display on a single browse page This
; affects ALL browse pages, as well as the Contact Info page.
page_size = {{$settings.page_size}}
; TRUE => Allow user to filter out certain columns on the Browse Tasks page
; Otherwise, the default columns are shown.
use_colfilters = {{$settings.use_colfilters}}
; TRUE => Convert newlines "\n" to <br>
convert_newlines = {{$settings.convert_newlines}}
; Phone number format. Currently, only US is supported. And it's not
; even used. So just ignore it.
phone_format = {{$settings.phone_format}}
; TRUE => strip any "tabindex=N" attributes in the template. You can
; use this, along with add_tab_indexes, to replace hand-coded tabindex
; attributes with auto-generated ones.
strip_tab_indexes = {{$settings.strip_tab_indexes}}
; TRUE => add a "tabindex=N" attribute to all <input>, <select>, and
; <textarea> tags so that the user can tab through the display in a
; sensible order. This is really useful.
add_tab_indexes = {{$settings.add_tab_indexes}}
; TRUE => strip all leading spaces in the output, if you want to
; conserve bandwidth (but not load on server), for example, if most of
; your users have modems.
; If you're trying to figure out why a page isn't displaying properly,
; then turn this off so you can see the indentation.
strip_leading_spaces = {{$settings.strip_leading_spaces}}
; Background color for campaign-related information
bg_campaign = "#eeffff"
; Background color for operation-related information
bg_operation = "#eeffee"
; Background color for team-related information
bg_team = "#ffffee"
; Background color for activist-related information
bg_activist = "#ffffff"
[security]
; Name of login action
login_action = "{{$settings.login_action}}"
; Name of logOUT action
logout_action = "{{$settings.logout_action}}"
; name of cookie or session variable to indicate user logged in
login_cookie_name = "{{$settings.login_cookie_name}}"
; TRUE => encrypt the session cookie (session id) For this to work,
; you MUST compile PHP with the mcrypt encryption libraries.
; Not yet implemented, sorry.
encrypt_login_cookie = "{{$settings.encrypt_login_cookie}}"
; Translation strings for trivial encryption. If you change these in
; a production environment, everyone will be logged out immediately.
tr_from = "{{$settings.tr_from}}"
tr_to = "{{$settings.tr_to}}"
; How/where login session existence is indicated. One of:
;
; phpsession - Use the native PHP session.
; This is the most robust.
; cookie - Use a cookie.
; Safer if you're on a public server, but seems
; to fail occasionally for no rhyme or reason.
; (5 complaints out of 3500 downloads).
; request - Embed the session information in forms and urls.
; If you have cookie-averse users, then you need
; this.
login_session_type = "{{$settings.login_session_type}}"
; TRUE => allow multiple simultaneous logins by the same user.
; If this is turned off, then existing logins are invalidated by newer
; logins by the same user. This provides an incentive for users NOT
; to share login information.
login_allow_simultaneous = {{$settings.login_allow_simultaneous}}
; Max number of login attempts before the user is locked out.
max_login_attempts = {{$settings.max_login_attempts}}
; Seconds to wait before allowing user to try again, if locked out.
login_retry_interval = {{$settings.login_retry_interval}}
; Number of seconds before expiring user's session
login_timeout = {{$settings.login_timeout}}
; Number of seconds prior to session timeout at which a warning popup
; should be displayed.
logout_warning_interval = {{$settings.logout_warning_interval}}
; Minimun password length
password_length_min = {{$settings.password_length_min}}
; Salt for hashing algorithm. If you change this, no existing users
; will be able to log in. You'll have to regenerate their passwords
; as follows: $passwordhash = md5( "$username:$password_salt:$password" ); and
; put $passwordhash in the database in the person.password field.
; for http_auth compatibility, this should not have any characters
; in the set [\"\x00-\x1f\x7f]
password_salt = "ach du lieber!"
; Hashing algorithm. Currently, only md5 is supported.
hash_algorithm = "md5"
; Symmetric encryption algorithm. Not used, yet. Hopefully soon.
crypt_algorithm = "3des"
; TRUE => if the user is an admin or tech, display the primary sql
; statement associated with the current display.
show_sql = {{$settings.show_sql}}
; Number of seconds before transient data expires.
; Leave blank if you don't want it to expire.
transient_data_timeout = {{$settings.transient_data_timeout}}
; Access policy default
; Access to displays and actions is granted based on section
; membership, based on the sectiondisplay and sectionaction tables.
; You can change the semantics of these tables with this parameter.
; Specify "allow" to allow access by default, denying only if there is
; a row that says otherwise. Specify "deny" to deny access by
; default, allowing only if there is a row that says otherwise. The
; default is "allow".
access_policy = "allow"
; Number of seconds before a long-running action will refresh
; Must be implemented in the action, otherwise ignored.
action_timeout = {{$settings.action_timeout}}
; Number of CSV records to generate at one shot.
csv_chunk_size = {{$settings.csv_chunk_size}}
; use http basic or digest authentication.
use_http_auth = 0
; A secret for use with http digest authentication
; If an attacker learns this, they can potentially fool your user
; into giving them a digested password which they can use at a later
; time.
noncekey = "my garden grows buttercups"
[http]
; HTTP cache limit header. Not used, yet. Not sure if I should.
; cache_limiter = "private_no_expire"
; HTTP POST or GET takes precedence?
req_parm_precedence = "{{$settings.req_parm_precedence}}"
; TRUE => trim leading and trailing whitespace from all request
; parameters.
req_auto_trim = {{$settings.req_auto_trim}}
[mail]
; TRUE => Restrict who users can send messages to. In this case,
; ordinary users can only send messages to the Advokit administrator,
; or to users in their own department. Admin/tech users can send
; to individual users in their department, or to all users within
; a particular department, or to all departments (meaning all users).
; FALSE => users can send messages to any user, or any department,
; or all departments (meaning all users).
; Messaging is not yet implemented.
restrict_messaging = {{$settings.restrict_messaging}}
; TRUE => show contact info only for users in the same department
; as the logged in user. Doesn't affect listings for admin users.
restrict_contact_info = {{$settings.restrict_contact_info}}
; Address to which bug reports and enhancement requests are sent.
app_maintainers = "{{$settings.app_maintainers}}"
; From address for autogenerated email
app_email = "{{$settings.app_email}}"
; TRUE => mail appears to come from the user, if the user has an email.
; If the user doesn't have an email, then app_email is used.
app_email_from_user = {{$settings.app_email_from_user}}
[templating]
; Not all of the following settings are supported in all template
; engines. These are biased toward Smarty, feel free to add what you
; need.
; Template engine name. Currently, only Smarty (http://smarty.php.net)
; is supported. To use a different one, modify TemplateEngine.class.php
; and translate all application templates
te_name = "smarty"
; TRUE => automatically escape HTML when rendering. This prevents
; cross-site scripting attacks.
; NOTE: this function expects that all template objects are either
; scalar values or arrays. Don't turn this on if you're using objects
; in your templates.
te_auto_html_escape = {{$settings.te_auto_html_escape}}
; Root directory for templates. For maximum security, DON'T put under
; the webroot.
te_root = "{{$settings.tplroot}}"
; Path to template engine (for Smarty, actually)
te_dir = "{{$settings.te_dir}}"
; Path to raw templates, relative to te_root.
te_tpls_raw = "{{$settings.te_tpls_raw}}"
; Path to compiled templates, relative to te_root.
te_tpls_compiled = "{{$settings.te_tpls_compiled}}"
; Path to cached templates, relative to te_root.
te_tpls_cached = "{{$settings.te_tpls_cached}}"
; TRUE => use subdirectories for compiled and cached templates.
; "TRUE" is faster.
te_use_sub_dirs = "{{$settings.te_use_sub_dirs}}"
; Path to template config files, relative to te_root. Same as
; te_tpls_raw on purpose, feel free to change.
te_tpl_configs = "{{$settings.te_tpls_raw}}"
; Path to debugging template, relative to te_root.
te_debugging_tpl = "{{$settings.te_debugging_tpl}}"
; TRUE => compile if templates have changed
te_compile_if_new = {{$settings.te_compile_if_new}}
; TRUE => always compile templates
; Turn this ON if you use the "request" login_session_type. Actually,
; I'd just leave this on unless you notice a performance problem.
; Caching algorithms are always a source of bugs.
te_compile_always = {{$settings.te_compile_always}}
; TRUE => enable debugging
; Primary impact of this option is the display of a separate debugging
; window.
te_debugging_on = {{$settings.te_debugging_on}}
; Left-side tag delimiter string
te_left_delimiter = "{{$settings.te_left_delimiter}}"
; Right-side tag delimiter string
te_right_delimiter = "{{$settings.te_right_delimiter}}"
; Append to module name to get associated template file
te_tpl_suffix = "{{$settings.te_tpl_suffix}}"
; Append to display type to get header file
te_header_suffix = "{{$settings.te_header_suffix}}"
; Append to display type to get footer file
te_footer_suffix = "{{$settings.te_footer_suffix}}"
; Security level for templates
te_security_level = "{{$settings.te_security_level}}"
[tweaks]
; Browser-specific tweaks. Why can't we all just get along?
; Prefixes are as follows:
; ie = Internet Explorer
; mozlin = Mozilla/Linux
; mozmac = Mozilla/Macintosh
; mozwin = Mozilla/Windows
; ns4 = Netscape 4 (no specific platform)
; op = Opera
; Set to false to not use the tweaks. Tweak these as needed to get
; your app to look the same in the specified browsers, then use
; {{$tweaks.text_input_whatever}} in your templates. See
; TemplateDisplay.class.php.
use_tweaks = {{$settings.use_tweaks}}
op_text_input_counter = {{$settings.op_text_input_counter}}
op_text_input_smallest = {{$settings.op_text_input_smallest}}
op_text_input_smaller = {{$settings.op_text_input_smaller}}
op_text_input_small = {{$settings.op_text_input_small}}
op_text_input_medium = {{$settings.op_text_input_medium}}
op_text_input_medlarge = {{$settings.op_text_input_medlarge}}
op_text_input_large = {{$settings.op_text_input_large}}
op_text_input_larger = {{$settings.op_text_input_larger}}
op_text_input_largest = {{$settings.op_text_input_largest}}
op_textarea_largest = {{$settings.op_textarea_largest}}
op_textarea_larger = {{$settings.op_textarea_larger}}
op_popup_height_ratio = {{$settings.op_popup_height_ratio}}
ie_text_input_counter = {{$settings.ie_text_input_counter}}
ie_text_input_smallest = {{$settings.ie_text_input_smallest}}
ie_text_input_smaller = {{$settings.ie_text_input_smaller}}
ie_text_input_small = {{$settings.ie_text_input_small}}
ie_text_input_medium = {{$settings.ie_text_input_medium}}
ie_text_input_medlarge = {{$settings.ie_text_input_medlarge}}
ie_text_input_large = {{$settings.ie_text_input_large}}
ie_text_input_larger = {{$settings.ie_text_input_larger}}
ie_text_input_largest = {{$settings.ie_text_input_largest}}
ie_textarea_largest = {{$settings.ie_textarea_largest}}
ie_textarea_larger = {{$settings.ie_textarea_larger}}
ie_popup_height_ratio = {{$settings.ie_popup_height_ratio}}
mozwin_text_input_counter = {{$settings.mozwin_text_input_counter}}
mozwin_text_input_smallest = {{$settings.mozwin_text_input_smallest}}
mozwin_text_input_smaller = {{$settings.mozwin_text_input_smaller}}
mozwin_text_input_small = {{$settings.mozwin_text_input_small}}
mozwin_text_input_medium = {{$settings.mozwin_text_input_medium}}
mozwin_text_input_medlarge = {{$settings.mozwin_text_input_medlarge}}
mozwin_text_input_large = {{$settings.mozwin_text_input_large}}
mozwin_text_input_larger = {{$settings.mozwin_text_input_larger}}
mozwin_text_input_largest = {{$settings.mozwin_text_input_largest}}
mozwin_textarea_largest = {{$settings.mozwin_textarea_largest}}
mozwin_textarea_larger = {{$settings.mozwin_textarea_larger}}
mozwin_popup_height_ratio = {{$settings.mozwin_popup_height_ratio}}
mozmac_text_input_counter = {{$settings.mozmac_text_input_counter}}
mozmac_text_input_smallest = {{$settings.mozmac_text_input_smallest}}
mozmac_text_input_smaller = {{$settings.mozmac_text_input_smaller}}
mozmac_text_input_small = {{$settings.mozmac_text_input_small}}
mozmac_text_input_medium = {{$settings.mozmac_text_input_medium}}
mozmac_text_input_medlarge = {{$settings.mozmac_text_input_medlarge}}
mozmac_text_input_large = {{$settings.mozmac_text_input_large}}
mozmac_text_input_larger = {{$settings.mozmac_text_input_larger}}
mozmac_text_input_largest = {{$settings.mozmac_text_input_largest}}
mozmac_textarea_largest = {{$settings.mozmac_textarea_largest}}
mozmac_textarea_larger = {{$settings.mozmac_textarea_larger}}
mozmac_popup_height_ratio = {{$settings.mozmac_popup_height_ratio}}
mozlin_text_input_counter = {{$settings.mozlin_text_input_counter}}
mozlin_text_input_smallest = {{$settings.mozlin_text_input_smallest}}
mozlin_text_input_smaller = {{$settings.mozlin_text_input_smaller}}
mozlin_text_input_small = {{$settings.mozlin_text_input_small}}
mozlin_text_input_medium = {{$settings.mozlin_text_input_medium}}
mozlin_text_input_medlarge = {{$settings.mozlin_text_input_medlarge}}
mozlin_text_input_large = {{$settings.mozlin_text_input_large}}
mozlin_text_input_larger = {{$settings.mozlin_text_input_larger}}
mozlin_text_input_largest = {{$settings.mozlin_text_input_largest}}
mozlin_textarea_largest = {{$settings.mozlin_textarea_largest}}
mozlin_textarea_larger = {{$settings.mozlin_textarea_larger}}
mozlin_popup_height_ratio = {{$settings.mozlin_popup_height_ratio}}
ns4_text_input_counter = {{$settings.ns4_text_input_counter}}
ns4_text_input_smallest = {{$settings.ns4_text_input_smallest}}
ns4_text_input_smaller = {{$settings.ns4_text_input_smaller}}
ns4_text_input_small = {{$settings.ns4_text_input_small}}
ns4_text_input_medium = {{$settings.ns4_text_input_medium}}
ns4_text_input_medlarge = {{$settings.ns4_text_input_medlarge}}
ns4_text_input_large = {{$settings.ns4_text_input_large}}
ns4_text_input_larger = {{$settings.ns4_text_input_larger}}
ns4_text_input_largest = {{$settings.ns4_text_input_largest}}
ns4_textarea_largest = {{$settings.ns4_textarea_largest}}
ns4_textarea_larger = {{$settings.ns4_textarea_larger}}
ns4_popup_height_ratio = {{$settings.ns4_popup_height_ratio}}
[campaigns]
[operations]
[activists]
; TRUE => require street address when adding activists
;
activist_address_required = {{$settings.activist_address_required}}
; TRUE => require city and state when adding activists
;
activist_citystate_required = {{$settings.activist_citystate_required}}
; TRUE => require one phone when adding activists
;
activist_phone_required = {{$settings.activist_phone_required}}
; TRUE => require one email when adding activists
;
activist_email_required = {{$settings.activist_email_required}}
; TRUE => leader jobs can be advertised.
;
advertise_leader_jobs = {{$settings.advertise_leader_jobs}}
; TRUE => ages will be calculated with respect to operation election date
;
age_relative_to_election_date = {{$settings.age_relative_to_election_date}}
[voters]
clist_bucket_size = 10
autopopulate_bucket_size = 30
; If clist_duplications is TRUE, then voter can appear
; on one contact list per operation -- otherwise, only
; one contact list at all.
clist_duplications = 1
[misc]
download_prefix = "http://cvs.voter2voter.org/releases/"
; If these three sections are defined, then non-super-admin users will never
; be setting sections for anyone. Only these will be used.
default_downline_leader_section = 5
default_team_leader_section = 7
default_activist_section = 9
; Method to select random voters. Your choices are:
;
; "mysql" - use the mysql "order by rand()" statement
; "advokit" - let advokit try to pick for you.
;
; Default is "advokit"
random_voter_selection = "advokit"
; if TRUE then use new security functionality
implement_data_security = 0
; Enter a string here to use for the browser page title
; if blank, then the product and version number will be used.
title_override = ""
; Enter a url here to use for the logo image (relative url is from
; web root of the application, exclude the leading slash). If left blank then
; the default AdvoKit logo will be used. If "none" is entered, no logo will
; appear (and there will be no corresponding "Home" link - if you want to have
; an invisible "Home" link (e.g. if you are putting your logo image into the
; background of the .sidebar.logo div), you could substitute a logo image
; that is a transparent gif.
; Examples:
; logo_url = ""
; logo_url = "images/logo.gif"
; logo_url = "http://www.a_domain.com/advokit/images/logo.gif"
; logo_url = "none"
logo_url = ""
; Enter 1 to enable users recovering their login by
; providing either a username and/or unique email.
; Enter 0 to require both username and email (email does not
; need to be unique).
easy_get_login = 1
; time correction - in hours
; this is just crude way to compensate for the difference of time
; zone between the server and the election site
; used in calculating days/hours remaining
; use a positive number if the server's time is early, negative if it's late
time_correction = 0
| cvsadmin@voter2voter.org | CVS Snapshots (updated daily) |