######################################################################################################## ############################### Plans config file ############################################## ######################################################################################################## # This file stores installation-specific settings for the plans calendar. # You may need to change them to match how your server or site is set up. # # Each time plans runs, it looks for this file in the same directory # plans.cgi is in. If found, this file is compiled with the rest of # plans. The following statements are perl code. ######################################################################################################## ############################### File Locations ############################################# ######################################################################################################## # This is the default file structure for plans: # # plans/ # plans.cgi # plans.config # data/ # *.xml # theme/ # plans.template # plans.css # icons/ # graphics/ # # The theme/ directory contains static files (.css, .js, .gif) # If your server does't allow static files be served from the same # directory (or subdirectories) as scripts, # You can move the theme directory to somewhere outside the plans directory. # If you do this, uncomment the variable below and set it accordingly. # You'll also need to change the default template file in the next section. $theme_url = "http://www.home2garden.com/theme"; # note there is no end slash! ######################################################################################################## ############################### Default Template ################################################# ######################################################################################################## # All calendars use the same default template file. # # Calendars can have their own custom template files, which override the default file. # this custom template file must be an URL (plans will fetch it across the network, even # if it resides on the same server). This increases security and allows template files to # come from other websites. # # If a calendar doesn't specify a custom template file, or plans is unable to fetch the custom # template file, it will use the default template file below. $options{default_theme_path} = "/home/cfmx/home2garden.com/htdocs/theme"; # IMPORTANT -- this is not an URL. It's a filesystem path. # On some unix hosts, you need to specify the entire path, # like: "/home/path/to/plans/theme/theme" # On a windows host, the you might need something # like: "C:/path/to/plans/theme" $options{default_template_path} = "$options{default_theme_path}/plans.template"; ######################################################################################################## ############################### Language ############################################## ######################################################################################################## # All user-facing text is stored in a table. When Plans runs, it sources $options{language_file}, which # fills the table with the appropriate stuff. $options{language_files} = "us_english.pl"; $options{js_language_file} = "plans_lang.js"; # The first time it runs, and after each upgrade # plans automatically translates the language strings # in its language file(s) into a javascript language file. $options{generate_js_lang} = 0; # this line forces plans to regenerate the javascript language file # every time it runs. If you are testing a translation, set this to 1. ######################################################################################################## ############################### Users & Permissions ################################### ######################################################################################################## # If you're on an intranet or private server, you can disable # passwords in Plans entirely by setting this option to 1. $options{disable_passwords} = 0; # Set this option to 1 if you want plans to use sessions. You won't have to type passwords over and over again. # This requires the CGI::Session perl module. $options{sessions} = 0; # events added without the proper password will be stored pending # approval by a calendar user or admin. (ignored if passwords are disabled), $options{anonymous_events} = 0; # If this is 1, calendar admins will have the ability to add 'users' to their calendar. # each user has a name & password of their own. # users can add and edit events, but not change calendar settings. $options{users} = 0; $options{pending_events_display} = 0; # display is different from approval # approval is always by logged-in user or admin # # 0 = public - everyone sees *all* pending events # 1 = users - everyone sees pending events for the calendar they're viewing. # 2 = users & admins - only logged-in users see pending events for the calendar they're viewing. # 3 = admins only - only calendar admins see pending events for the calendar they're viewing. # The "salt" variable is used by the encryption algorithm that plans uses to store passwords. # # If you want your encrypted passwords to look different from everyone else's encrypted passwords, # change this value to a different (random) string. # # However, if you change the salt, all your existing passwords (including the default calendars supplied with Plans) # won't work! You'll have to change them individually, by re-generate them by hand with the new salt value. # # If you are enough of a security guru to want to change the salt, re-generating the passwords should be no problem :) $options{salt} = "NaCl"; ######################################################################################################## ############################### Timezones ############################################# ######################################################################################################## # Each calendar in Plans can have its own timezone. While this is handy for some folks, # it causes confusion if timezones are changed by accident. # Keep this switch set at 1 to force all calendars to use the main calendar's timezone. $options{force_single_timezone} = 1; ######################################################################################################## ############################### Event Times ########################################### ######################################################################################################## # New events in Plans are all-day events by default # You can set this switch to 0 to make new events have an event time by default $options{new_events_all_day} = 0; $options{twentyfour_hour_format} = 0; if ($options{twentyfour_hour_format}) { $options{default_event_start_time} = "9:00"; $options{default_event_end_time} = "18:00"; } else { $options{default_event_start_time} = "9:00 am"; $options{default_event_end_time} = "5:00 pm"; } ######################################################################################################## ############################### Selecting Multiple Calendars ################################## ######################################################################################################## # Each event in Plans is associated with a calendar. # If this switch is 1, all calendars will always appear in the calendar controls dropdown. # # If this switch is 0, each calendar gets to choose what other calendars will be in the dropdown # when it's the active calendar. This can be used to manage a large hierarchy of calendars, but it # requires more oversight, especially when creating new calendars. $options{all_calendars_selectable} = 1; # If this variable is 1, new calendars will automatically be added to all existing # calendars' drop-down selections at creation time. # this option has no visible effect if $options{all_calendars_selectable} = 1. $options{new_calendars_automatically_selectable} = 1; # if $options{calendar_select_order} is blank (totally commented out), calendars will # be listed on the dropdown menu in the order they were created. # You can change this by setting $options{calendar_select_order} to "alpha" (sort alphabetically) # or by explicitly ordering the calendars by id(you may have to look at the calendar data to find the id). #$options{calendar_select_order} = "alpha"; #$options{calendar_select_order} = "0,3,4,1,6,7,8"; ######################################################################################################## ############################### Multi-calendar events ######################################## ######################################################################################################## # Each event in Plans is associated with one calendar by default. # However, individual events can be associated with multiple calendars # (This is different from Plans' ability to merge entire calendars) # # 0 = single calendar (events allowed to be under only one calendar) # # 1 = multi-calendar, single password (events can be under multiple calendars, # but only the password from the original calendar can be used to modify the event) # # 2 = multi-calendar, multi-password (events can be under multiple calendars, # and any of their passwords can be used to modify the event.) $options{multi_calendar_event_mode} = 0; ######################################################################################################## ############################### View Types ############################################ ######################################################################################################## # Here you can turn on of off Plans' various view types. # This affects the "display" menu in the calendar controls. # 1 to enable, 0 to disable. $options{display_types}[0] = 1; # calendar view $options{display_types}[1] = 1; # list view $options{display_types}[2] = 0; # daily view with event details (not implemented yet!) ######################################################################################################## ############################### Data storage ############################################# ######################################################################################################## # subdirectory beneath plans, where .xml files are kept $options{data_directory} = "caldata"; # You can store calendar data in flat files or a database (like mySQL). # The default storage mode is plain text files. # you can switch modes at any time--plans will convert your existing data. # 0 = flat text files # 1 = sql $options{data_storage_mode} = 0; # This is where plans keeps information that it "discovers". See the file for more details. $options{discovery_file} = "$options{data_directory}/plans_discovery.xml"; # This subdirectory is where plans keeps sessions files. $options{sessions_directory} = "sessions"; ################################ Flat-file mode (mode 0) ########################################## ######################################################################################################## $options{events_file} = "$options{data_directory}/events.xml"; # events for all calendars. $options{pending_actions_file} = "$options{data_directory}/pending_actions.xml"; # new (not yet approved) events $options{calendars_file} = "$options{data_directory}/calendars.xml"; # settings for calendars $options{users_file} = "$options{data_directory}/users.xml"; # users. ################################# SQL DBI mode (mode 1) ######################################### # Perl's database abstraction layer (DBI) can talk to most SQL database types. ######################################################################################################## if ($options{data_storage_mode}==1) { $dbh; # define global database handle require DBD::mysql; # Here, you specify what database type you'll be using. $options{db_name} = "db_name"; # And the name of the database (you have to create it on your own first) $options{db_hostname} = "db_host.domain.com"; # And the database hostname $options{db_username} = "db_user"; # And the username you'll use to connect $options{db_password_file} = "../plans_mysql.pwd"; # Put the DB password in this file. # Make sure this file is *not* publically # readable (chmod 400 on unix) # You don't have to create these tables. # Plans will do it for you. $options{calendars_table} = "calendars"; # Table for storing calendar settings. $options{events_table} = "events"; # Table for storing event data. $options{pending_actions_table} = "pending_actions"; # Table for storing event data. $options{users_table} = "users"; # Table for storing calendar users. # open the password file open (FH, "$options{db_password_file}") || {$debug_info.= "unable to open file $options{db_password_file}\n"}; flock FH,2; $options{mysql_password}=; close FH; chomp $options{mysql_password}; # connect to the db host if (!($dbh = DBI->connect("DBI:mysql:database=$options{db_name};host=$options{db_hostname}","$options{db_username}","$options{mysql_password}"))) { $fatal_error=1; $error_info.= "DB connect error! $DBI::errstr"; return 1; } } ######################################################################################################## ############################### Email ############################################# ######################################################################################################## # Plans can send email reminders to visitors # If this is turned on, an email reminder link will appear in the event details. # If a user clicks on it, a record will be added to $options{email_reminders_datafile} # This file is read by email_reminders.cgi, which is what actually sends the email. # # email_reminders.cgi does not run automatically when Plans runs. You have to run it # as a cron job (unix) or a scheduled task (windows). You can also run email_reminders.cgi # manually from the command line, or by pointing your browser at it. $options{email_mode} = 1; # 0 = off # 1 = unix (sendmail) # 2 will be windows STMP (not supported yet) if ($options{email_mode} == 1) { $options{sendmail_location} = "/usr/sbin/sendmail"; } elsif ($options{email_mode} == 2) { require Net::SMTP; $options{mail_server}="127.0.0.1"; $smtp = Net::SMTP->new($options{mail_server}); } $options{reply_address} = "your\@address.com"; # used for the "reply-to" field of reminder emails $options{from_address} = "your\@address.com"; # used for the "from"field of reminder emails $options{email_reminders_datafile} = "$options{data_directory}/email_reminders.xml"; # xml file where email reminder data is kept. $options{new_calendar_request_notify} = "your\@address.com"; # send an email here when someone requests a new calendar ######################################################################################################## ############################### Tabs ############################################# ######################################################################################################## # You can disable tabs by uncommenting the array below # Specify the numbers of the tabs not to be shown (numbers start with 0) #@disabled_tabs = (0,1,2); # If you want to remove all the tabs, an easier # way is to remove the ###tab menu stuff### # tag from the plans.template file. ######################################################################################################## ############################ Right-click menus ######################################### ######################################################################################################## # If you right-click on a day or event, you get a drop-down menu # with entries like "add event on this day". # To disable these menus, set the following variable to 0. $options{right_click_menus_enabled} = 1; ######################################################################################################## ############################ Upcoming Events ######################################### ######################################################################################################## # You can adjust the value used for the "Cache-control" http header # that is sent back when upcoming events are fetched. # This causes the client browser to use its cached copy of the upcoming events data, # so it won't hit the server for each page load. $options{upcoming_events_cache_seconds} = 0; ######################################################################################################## ############################# Event Background Colors ########################################### ######################################################################################################## # set this to 1 to have the descriptions in the # second column appear on the colors in the dropdown menu. $options{show_event_background_color_descriptions} = 0; # You can change these or add more. $event_background_colors = <Blank (no icon) Logo Bike Pumpkin Clipboard & pencil Bullet point Exclamation point Clock Clock2 Clock3 Clover Church Coffee Dollar Sign Envelope Fire Fish Flower Flowers Flowerpot Globe Grad Cap Grapes Heart2 Jackolantern Light News Paint Paperclip Peach Pencil Pumpkin Pumpkin2 Smiley Snowflake Sun Stars & Stripes First Aid Bike Campfire Axe Canoe Compass Fish Pack (ext. frame) Pack (int. frame) Snowflake Tent Bee p1 # Again, be careful to avoid putting any characters # (normal or whitespace) after the "p1", on the same line. This is a # source of errors for those who aren't familiar with perl :) ######################################################################################################## ################################ Other options ############################################# ######################################################################################################## # Plans was originally devloped as a calendar for a scout troop. This # feature is a holdover from those days. For it to work correctly, # the graphics for unit number icons must be present in the $graphics_url. $options{unit_number_icons} = 0; # iCal import is not fully supported yet, it's available if you are feeling adventurous # if this option is set to 1, you'll be able to add iCal calenars from the "Calendar Settings" tab. $options{ical_import} = 1; return 1;