wiki:WebConfig

Version 20 (modified by Christian Beer, 11 years ago) (diff)

updated to reflect current code

Web site customization

Customizing the default web site

When you create a BOINC project using make_project, a web site is created for you. This consists of a front page (html/user/index.php), which links to pages where users can log in, edit preferences, create profiles, and so on.

Before your project goes public, you'll want to change this web site by adding content and giving the web site a graphical identity specific to your project. Make sure you do a good job; your web site has a large impact on your project's ability to recruit and retain participants.

Some of this customization can be done by editing the main page (index.php) and the stylesheet (white.css) files. Other aspects are changed using a configuration file, described below.

An alternative version of the Account page, with many graphical icons, is available here: http://boinc.berkeley.edu/BOINC_WebIcons_and_php_code.zip (not supported, and doesn't work any more).

Web configuration file

The file html/project/project.inc serves as a configuration file for your web site. It exists in a separate directory (html/project) so that you can put all project-specific web files there (create symbolic links from html/inc and html/user). You should put this directory under version control (SVN or CVS).

The file project.inc is generated by make_project with default values. Edit this file to customize the constants and functions it contains.

Constants:

PROJECT
The name of your project
URL_BASE
Base URL for web pages (usually same as master_url defined in config.xml). Warning: if you change your master URL, volunteers will have to detach/reattach your project.
SECURE_URL_BASE
(optional) URL prefix for forms with passwords. If your web server supports HTTPS, set this accordingly.
STYLESHEET
Name of stylesheet file (such as white.css)
STYLESHEET2
Name of an optional project supplied stylesheet.
IMAGE_PATH
relative path to user-uploaded profile images (default: ../user_profile/images/)
IMAGE_URL
url path to above defined path, is appended to URL_BASE (default: user_profile/images/)
PROFILE_PATH
relative path to user profiles (default: ../user_profile/)
PROFILE_URL
url path to user profiles, is appended to URL_BASE (default: user_profile/)
LANGUAGE_FILE
name of a text file that contains language names that are shown in a selection box to the user at his profile. File is expected in html/user. (default: languages.txt)
COPYRIGHT_HOLDER
Name of copyright holder
SYS_ADMIN_EMAIL
Users are directed here if they have complaints about message-board moderation.
UOTD_ADMIN_EMAIL
Messages about user-of-the-day running low are sent here.
POST_REPORT_EMAILS
Moderation-related emails (such as user complaints) are sent here.
INVITE_CODES
Regular expression used for controlling account creation.
EMAIL_FROM
'from' address for emails
EMAIL_FROM_NAME
'from' name for emails
COUNTRY_FLAGS
If defined, show country flags in forums. See the comments in html/inc/forum.inc
NO_TEAMS
If defined, nothing related to teams is displayed.
FORUM_QA_MERGED_MODE
Set this to true to merge Message boards and Q&A section

Certificate-related constants:

CERT_SIGNATURE
Signature image filename
CERT_DIRECTOR_NAME
Name of project director
CERT_PROJECT_LOGO
Project logo image filename (if any)
CERT_INSTITUTION_LOGO
Institution logo image filename (if any)

Variables:

$banned_email_domains
An array of strings. An account's email address may not end with any of these strings.

Functions:

project_banner()
Prints page header
project_footer()
Prints page footer
show_profile_heading1(), show_profile_heading2()
Text on user profile page
show_profile_question1(), show_profile_question2()
Text on user profile page
project_workunit($wu)
Prints project-specific text on workunit page
project_user_links($user)
Return project-specific text to be shown after user name.
project_user_summary()
Prints project-specific text on user page
project_user_page_private()
Prints project-specific text on private user page
donations_intro()
Displays customized donation information. Useful to describe what the project uses donations for, and project specific guides for donations. If function is not defined, standard donation information is displayed.html/user/donations.php.
project_rules_policies()
Displays customized project rules and policies. If return value is true, standard rules and policies are appended. If function is not defined, default rules and policies are displayed.
project_forum_post_rules()
return a string describing message board policies.

To use PHPMailer (the preferred way to send emails to participants):

USE_PHPMAILER
Set to true if you use PHPMailer. In this case you must download PHPMailer and put it (i.e. the directory 'phpmailer') in your html/inc directory.
PHPMAILER_HOST
The Host argument to PHPMailer; typically a semicolon-separated list of SMTP servers.
PHPMAIL_MAILER
The Mailer argument to PHPMailer; typically 'sendmail', 'mail', or 'smtp'.

If you do not set USE_PHPMAILER then e-mail to participants can still be sent, but it will use PHP's simpler mail() function.