# # Items in this section will be available from the configuration # object's root, at least for the time being [Global] DEBUG = 0 no_promotion = 0 ConfigurationRevision = $Revision: 1.20 $ # # Information about how to send email and some system email addresses [mail] smtp_host = 127.0.0.1 admin_email = admin@mycompany.com content_email = content@mycompany.com # # Define the default datasource names to use when an SPOPS object # doesn't specify one [datasource] default_connection_db = main default_connection_ldap = main # # Enter your database connection parameters in the 'main' entry # -- see 'OpenInteract::DBI' for more information about # them). Briefly: # # driver_name # name of driver -- second part of the DBI DSN # dsn # last part of the DBI DSN # username # who do we login as? # password # what password do we login with? # db_name (optional) # name of database -- you normally specify this in 'dsn' and you # only need this if you're sharing connections among multiple # databases. Most people can leave it empty. # db_owner (optional) # who owns the db? This should only be set if your # database requires it -- most people can leave it empty. # sql_install (optional) # if name of driver and name of SQL installer to use differ, # put the SQL installer here. For instance, if you use # DBD::ODBC and Sybase, you'd put 'ODBC' under the # 'driver_name' and 'Sybase' under 'sql_install' # long_read_len # length of longest TEXT/LOB to read (see DBI docs under # 'LongReadLen') # long_trunc_ok # whether it's okay to truncate TEXT/LOB values that exceed # long_read_len (see DBI docs under 'LongTruncOk') [db_info main] driver_name = dsn = username = password = db_name = db_owner = sql_install = long_read_len = 65536 long_trunc_ok = 0 # # Enter your LDAP connection information if you're using # LDAP. Briefly: # # host # The IP address/hostname with the LDAP server # port # The port the LDAP server is running on (usually 389) # bind_dn # The distinguished name of the record to bind as. If left # blank you will be doing an anonymous bind and the value for # 'bind_password' will not be used. # bind_password # Password to use with 'bind_dn' to bind to the server. # base_dn # Can be used by modules to determine the Base DN where # objects should be stored. This might be something like # 'dc=MyCompany,dc=com' # timeout # Value (in seconds) to wait for a timed out connection # version # LDAP protocol version. Use '3' if you're using SASL # sasl # Set to a true value to use SASL authentication # debug # See entry in Net::LDAP->new() for possible values [ldap_info main] host = port = bind_dn = bind_password = base_dn = timeout = 120 version = 2 sasl = 0 debug = 0 # # If you're using a database-backed session store, you just need # to change 'class' to the relevant storage module (e.g., # 'Apache::Session::Postgres') # # If you're not using a database-backed session store, you should be # able to change 'class' to something like 'Apache::Session::File' and # then create relevant entries in 'session_info.params' below (e.g., # 'Directory' and 'LockDirectory' for 'Apache::Session::File'). # # Note that you can also set the expiration for the session # cookie -- if you set it to be 'undef' the cookie will be # 'short-lived', meaning it will expire when the user shuts # down the browser. Otherwise, pass something like the # following: '+3d' (3 days); '+3M' (3 months); '+480s' (480 # seconds); '+15h' (15 hours); '+1y' (1 year) # # The setting for 'expires_in' is in minutes. If set to 0 or undefined # the sessions will never be time-expired. # # The 'cache_*' settings determine whether the user, group and theme # objects should be stored in the session. If set to 0 we fetch this # information every request. If set to a positive number, we store the # objects in the session and refresh it every x minutes. [session_info] class = Apache::Session::MySQL expiration = +3M expires_in = 0 cache_user = 30 cache_group = 30 cache_theme = 30 # Add whatever key/value parameters are necessary for your session # implementation [session_info params] # # Unless you're using LDAP for authentication, you probably don't # want to change these in the beginning. However, you might want # to change them (particularly the 'theme' value) as your site # grows. [default_objects] superuser = 1 supergroup = 1 theme = 1 public_group = 2 site_admin_group = 3 # # Define the box handler and the handler to take care of the # default system boxes. The 'custom_box_handler' entry is for you # to fill in if you'd like -- you can add other boxes to every # page, add them depending on the request type, etc. [box] handler = %%WEBSITE_NAME%%::Handler::Box default_template = base_box::main_box_shell default_separator = default_method = system_box_handler = %%WEBSITE_NAME%%::Handler::SystemBoxes system_box_method = custom_box_handler = custom_box_method = # # Define login information. In the future you'll be able to define # the object(s) used for logging in and possibly more. # # crypt_password: Set whether you want to store encrypted passwords in # the database (set by default and recommended). Note that if you're # using LDAP or some SMB authentication you want to set this to '0' # since the backend will take care of that for you. # # *_field: These are the fields used to read in the username and # password from the user and are used in the 'login_box' component # shipped with OpenInteract and found in the 'base_box' package. Note # that if 'remember_field' is not defined then we don't display the # checkbox in the login box. # # custom_*: Class and method that specify an code that executes after # the authentication process is complete (Optional) # # always_remember: if true then we always remember the login (and # don't display the checkbox) # # required: if set a login is always required; if the user isn't # logged in she'll be sent to the URL in 'required_url' # # required_skip: zero or more regular expressions indicating the areas # of the site that don't require a login even if 'required' is true [login] crypt_password = 1 login_field = login_login_name password_field = login_password remember_field = login_remember custom_handler = custom_method = custom_fail_method = always_remember = 0 required = 0 required_url = /login.html required_skip = ^/$ required_skip = ^/index.html$ required_skip = ^/Login.* required_skip = ^/help.* # # Various simple miscellaneous display items can go here: # # use_meta_redirect: if set to 1 we'll create a redirect using META # tags (old way) # # use_http_redirect: if set to 1 we'll perform a redirect using HTTP # headers (new way); overrides 'use_header_redirect' if set # # show_redirect_message: if using 'use_meta_redirect' controls whether # we display a message in the page using META tags [display_info] use_meta_redirect = 1 use_http_redirect = 0 show_redirect_message = 0 # # Page directives come before the rest of the URL and # control some fundamental aspect of display. For instance, # 'NoTmpl' before a URL will not put the content in a # template, and 'Popup' before a URL will put the content # into the template used for popup windows (usually a really # simple one that you set in your theme). For all directives # except the 'No' ones the key should be found as the value # in 'template_names' below which matches up to a key in the # theme. (Slightly confusing.) [page_directives] Popup = simple_template NoTemplate = 1 NoTmpl = 1 # # Define the keys under which we store our important # template names in a theme. This way we can use simple # keywords to refer to the page definition templates. (NOTE: # This is not used quite yet but should be implemented # shortly.) [template_names] main = main_template simple = simple_template # # Define information used by the template processing modules. # # template_ext: Default extension for template files. We also check # for files with a given name and no extension # # cache_size: How many templates the Template Toolkit should cache in # memory # # compile_cleanup: If true, will remove all compiled files on server # restart (production boxes can set this to false so that startup # costs aren't so heavy) # # compile_ext: Extension for compiled TT files. Most people won't (or # shouldn't) care about this. # # custom_init_*: Class and method specifying an action that's called # before the template object is initialized. Here you can define a # PRE_PROCESS template (for instance, with BLOCKs having all your # common widgets) or set any of the other configuration information # specified in 'perldoc Template::Manual::Config'. If you use this, # set 'custom_init_class' to a class that has a method specified in # 'custom_init_method' or use the default ('handler') # # custom_variable_*: Class and method specifying an action that's # called before every template is processed. If you have common # BLOCKs, formatting elements or other items that are not full-blown # OI components, you can add them to the template variable hash. If # you use this, set 'custom_variable_class' to a class that has a # method specified in 'custom_variable_method' or use the default # ('handler'). [template_info] template_ext = tmpl cache_size = 75 compile_cleanup = 1 compile_ext = .ttc custom_init_class = custom_init_method = custom_variable_class = custom_variable_method = # # Override filenames. Set thse to the filename(s) with your override # rules. (If the files aren't defined nothing bad will happen.) You # probably do not need to change them. [override] spops_file = conf/override_spops.ini action_file = conf/override_action.ini # # Information about errors - you shouldn't need to change any items [error] error_object_class = %%WEBSITE_NAME%%::ErrorObject default_error_handler = OpenInteract::Error::System # # Setup aliases so that you can retrieve a class name from $R; # for instance: $R->cookies will return # 'OpenInteract::Cookies::Apache' by default.. Generally the only # one you might possibly want to change is the first one, to # refer to a different cookie get/set scheme (Win32 users may # need to use 'OpenInteract::Cookies::CGI') [system_alias] site_template = OpenInteract::SiteTemplate sitetemplate = OpenInteract::SiteTemplate cookies = OpenInteract::Cookies::Apache session = OpenInteract::Session::DBI template = OpenInteract::Template::Process repository = OpenInteract::PackageRepository package = OpenInteract::Package error = OpenInteract::Error auth = OpenInteract::Auth auth_user = OpenInteract::Auth auth_group = OpenInteract::Auth security_object = %%WEBSITE_NAME%%::Security object_security = %%WEBSITE_NAME%%::Security security = %%WEBSITE_NAME%%::Security secure = SPOPS::Secure error_handler = OpenInteract::Error::Main component = OpenInteract::Component # # Define what your system uses for certain IDs. Defaults are fine # for 95% of users -- the most common need for changing these is # if you're using LDAP to store user and group objects. # # Currently accepted values: 'int', 'char' [id] user_type = int group_type = int # # Directories used by OpenInteract. Only change these if you know # what you're doing. Note that 'base' and 'interact' are replaced # when the server starts up, so any values you set there will # just be overwritten. [dir] base = interact = error = $BASE/error html = $BASE/html log = $BASE/logs cache_content = $BASE/cache/content cache_tt = $BASE/cache/tt config = $BASE/conf data = $BASE/data mail = $BASE/mail help = $HTML/help overflow = $BASE/overflow download = $HTML/downloads upload = $BASE/uploads template = $BASE/template # # These are overwritten at server startup [server_info] stash_class = request_class = website_name = # # Define information used by the SPOPS/content cache # # use: If true, caching is on; otherwise caching is disabled # # use_spops: If true, caching for SPOPS objects is on; otherwise it is # disabled # # default_expire: Each caching call can set its own expiration, but # if not this is used. (In seconds) # # class: Cache implementation to use. File-based caching is the only # implementation so far. # # max_size: Max size of the cache. (In bytes) # # directory_depth: Cache::FileCache will divide cached items into # subdirectories so too many don't clog a single directory. This # describes the depth. (Default is usually fine.) [cache_info data] use = 0 use_spops = 0 default_expire = 600 class = OpenInteract::Cache::File max_size = 2000000 cleanup = 1 directory_depth = 3 [cache_info template] expire = 900 # # Define the main conductor; if you create additional # interfaces for your website(s) (e.g. SOAP) then you # can add another conductor here. [conductor main] class = OpenInteract::UI::Main method = handler # The action table defines how OpenInteract responds to URLs; the only # information we hold here is for default information ('action_info # default) -- information that does not need to be specified in the # individual package's 'conf/action.perl' file; we also define how # OpenInteract should respond to a null action (under 'action_info # none') and how it should respond to an action that is not found # (under 'action_info not_found') [action_info default] template_processor = OpenInteract::Template::Process conductor = main method = handler [action_info none] redir = page [action_info not_found] redir = page