Sample server.perl Configuration


$data = {

     # This is a system-wide debugging variable; increasing
     # values (from 1-5) give you increasing verbosity in the
     # error log

     'DEBUG'         => 0,

     # CHANGE THIS (SMTP host we use for sending email)

     'smtp_host'     => '127.0.0.1',       

     # CHANGE THIS (email address for administrator; all emails
     # from the system will come from this address)

     'admin_email'   => 'admin@mycompany.com',

     # CHANGE THIS (if necessary -- if you're not using MySQL,
     # you can use something like 'Apache::Session::File' for the
     # class entry and then create entries for 'Directory' and
     # 'LockDirectory')

     'session_info' => {
       'class' => 'Apache::Session::MySQL',
     },


     # CHANGE THIS (enter your db parameters -- see
     # 'OpenInteract::DBI' for more information about them). Briefly:
     #   db_owner: optional: who owns the db?
     #   username: who do we login as?
     #   password: what password do we login with?
     #   dsn: last part of the DBI DSN
     #   db_name: name of database
     #   driver_name: name of driver -- second part of the DBI DSN

     'db_info' => { 
       'db_owner'    => '',
       'username'    => '',
       'password'    => '',
       'dsn'         => '',
       'db_name'     => '',
       'driver_name' => '',
     },

     # These settings are good for when the system first gets
     # started, but you might want to change them (particularly
     # the 'theme' value) as your site grows

     'default_objects' => {
       'theme'            => 1,
       'group'            => 2,
       'site_admin_group' => 3,
     },

     # Define the box handler and the handler to take care of the
     # default system boxes. Also define some default information
     # in case a box or the theme does not do so (see
     # OpenInteract::Handler::SystemBoxes for more), and override
     # some of the default system box settings with 'weight' and
     # 'title' (see OpenInteract::Handler::SystemBoxes for more).

     'box' => {
       handler            => '%%WEBSITE_NAME%%::Handler::Box',
       default_template   => 'base_box::main_box_shell',
       default_separator  => undef,
       default_method     => undef,
       system_box_handler => '%%WEBSITE_NAME%%::Handler::SystemBoxes',
     },

     # Login information. Set whether you want to store encrypted
     # passwords in the database (set by default and recommended) and
     # define login fields. These are the fields used to read in the
     # username and password from the user. In the future you'll be
     # able to define the object(s) used for logging in and possibly
     # more.
     #
     # The fields defined here are used in the 'login_box'
     # template shipped with OpenInteract and found in the
     # 'base_box' package.

     'login' => {
       crypt_password   => 1,
       login_field      => 'login_login_name',
       password_field   => 'login_password',
     },

     # Various simple miscellaneous display items can go here

     'display_info' => {
        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',
     },

     # Setup aliases so that you can retrieve a class name from $R;
     # for instance: $R->cookies will return
     # 'OpenInteract::Cookies'. Generally the only one you might
     # possibly want to change is the first one, to refer to a
     # different session serialization scheme.

     'system_alias' => {
       'OpenInteract::Session::MySQL'     => [ qw/ session / ],
       'OpenInteract::Template::Toolkit'  => [ qw/ template / ],
       'OpenInteract::Package'            => [ qw/ package / ],
       'OpenInteract::Error'              => [ qw/ error / ],
       'OpenInteract::Cookies'            => [ qw/ cookies / ],
       'OpenInteract::Auth'               => [ qw/ auth auth_user auth_group / ],
       '%%WEBSITE_NAME%%::Security'       => [ qw/ security_object object_security security / ],
       'SPOPS::Secure'                    => [ qw/ secure / ],
       'OpenInteract::Error::Main'        => [ qw/ error_handler / ],
       'OpenInteract::Handler::Component' => [ qw/ component / ],
     },

     # 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'     => undef, # replaced in OpenInteract::Startup
       'interact' => undef, # replaced in OpenInteract::Startup
       'error'    => '$BASE/error',
       'html'     => '$BASE/html',
       'log'      => '$BASE/logs',
       'cache'    => '$BASE/cache',
       'config'   => '$BASE/conf',
       'data'     => '$BASE/data',
       'mail'     => '$BASE/mail',
       'template' => '$BASE/templates',
       'help'     => '$HTML/help',
       'overflow' => '$HTML/overflow',
       'download' => '$HTML/downloads',
       'upload'   => '$BASE/uploads',
     },

     # Caching is currently not implemented, but when it is all
     # cache information will go here.

     'cache_info' => {
       'data' => { 
         'expire'   => 600,
         'use'      => '0',
         'class'    => 'OpenInteract::Cache::File',
         'max_size' => 2000000,
         'SPOPS'    => 0,
         'use_ipc'  => 0,
       },
       'ipc' => {
         'class'    => 'OpenInteract::Cache::IPC',
         'key'      => 'CMWC',
       },
     },

     # Used by group_community package

     'group_context' => 0,

     # Class used to configure SPOPS object (shouldn't need to change)

     'SPOPS_config_class'    => 'SPOPS::Configure::DBI',

     # Class of error object (shouldn't need to change)

     'error_object_class'    => '%%WEBSITE_NAME%%::ErrorObject',

     # Class of default error handler -- one that can handle
     # every error thrown by OpenInteract (shouldn't need to
     # change)

     'default_error_handler' => 'OpenInteract::Error::System',

     # Extension for template files -- used to lookup files in
     # the OpenInteract::Template module (shouldn't need to
     # change).

     'template_ext'     => 'tmpl',

     # Don't change these three! Whatever you enter will be
     # overwritten at server startup.

     'stash_class'      => '',
     'website_name'     => '',
     'request_class'    => '',

     # 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',
       },
     },

     # Action information -- define how OpenInteract responds to
     # URLs; the only information we hold here is for default
     # information (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 the '' key) and how it should respond
     # to an action that is not found (under '_notfound_')
     #

     # Note that we used to use 'default' instead of
     # '_default_action_info_' -- the former is now deprecated,
     # so you should move to the new one!

     'action' => {
       '_default_action_info_' => {
           'template_processor'  => 'OpenInteract::Template::Toolkit',
           'conductor' => 'main',
           'method'    => 'handler',           
       },
       '' => {
           'redir'     => 'basicpage',
       },
       '_notfound_' => {
           'redir'     => 'basicpage',
       },
     },

     # Used for testing purposes only

     'ConfigurationRevision' => '$Revision: 1.1.1.1 $',

};