mirror of https://github.com/BOINC/boinc.git
278 lines
8.0 KiB
PHP
278 lines
8.0 KiB
PHP
<?php
|
|
|
|
// Sample BOINC project web config file.
|
|
// Modify it to suit your project.
|
|
// Put your version in html/project/project.inc
|
|
//
|
|
// add tra() around visible strings to make them translatable
|
|
// see inc/translation.inc and
|
|
// https://boinc.berkeley.edu/trac/wiki/TranslateProject for details
|
|
|
|
require_once("../inc/util.inc");
|
|
|
|
//-------------- Project name and owner
|
|
|
|
define("PROJECT", "REPLACE WITH PROJECT NAME");
|
|
define("COPYRIGHT_HOLDER", "REPLACE WITH COPYRIGHT HOLDER");
|
|
|
|
//-------------- URLs and directories
|
|
|
|
$master_url = parse_config(get_config(), "<master_url>");
|
|
define("URL_BASE", $master_url);
|
|
define("IMAGE_PATH", "../user_profile/images/");
|
|
define("IMAGE_URL", "user_profile/images/");
|
|
define("PROFILE_PATH", "../user_profile/");
|
|
define("PROFILE_URL", "user_profile/");
|
|
define("LANGUAGE_FILE", "languages.txt");
|
|
|
|
//-------------- contact info
|
|
|
|
define("SYS_ADMIN_EMAIL", "admin@$master_url");
|
|
define("UOTD_ADMIN_EMAIL", "admin@$master_url");
|
|
// who gets emails about user of the day pool running low?
|
|
define("POST_REPORT_EMAILS", "moderator1@$master_url|moderator2@$master_url");
|
|
// Email addresses separated by pipe ( | ) that will receive user reports
|
|
// of offensive forum posts.
|
|
|
|
//-------------- Caching
|
|
|
|
//define("MEMCACHE_SERVERS", "127.0.0.1:11211");
|
|
|
|
//-------------- CSS styling
|
|
|
|
// add your own stylesheets (included after bootstrap)
|
|
//define("STYLESHEET", "aaa.css");
|
|
//define("STYLESHEET2", "bbb.css");
|
|
|
|
//-------------- enable/disable web features
|
|
|
|
define("FORUM_QA_MERGED_MODE", true);
|
|
// Set to true to merge Message boards and Q&A section
|
|
define ("DISABLE_PROFILES", true);
|
|
// enable profiles only after enabling reCAPTCHA
|
|
// http://boinc.berkeley.edu/trac/wiki/ProtectionFromSpam
|
|
define("USE_STOPFORUMSPAM", true);
|
|
// use http://www.stopforumspam.com to suppress spammer accounts
|
|
define("RPC_DEBUG", false);
|
|
// Enables PHP error messages in public Web RPCs
|
|
|
|
//-------------- Project-specific preferences
|
|
|
|
define('COLOR_PREFS', false);
|
|
// user can select screensaver color scheme
|
|
define('GFX_CPU_PREFS', false);
|
|
// user can limit % CPU used by screensaver
|
|
// (lower frame rate if exceeded)
|
|
// This is probably irrelevant if your screensaver uses OpenGL
|
|
define('APP_SELECT_PREFS', false);
|
|
// user can choose which apps to run
|
|
define('NON_GRAPHICAL_PREF', false);
|
|
// user can choose to run faster non-graphical app versions if available
|
|
define('MAX_JOBS_PREF', false);
|
|
// user can choose max # of jobs in progress
|
|
define('MAX_CPUS_PREF', false);
|
|
// user can choose max # of CPUs to use
|
|
|
|
//-------------- PHPMailer
|
|
|
|
// If you use PHPMailer, uncomment the following
|
|
// and complete the function definition based on your SMTP server
|
|
// (not all fields may be needed)
|
|
//
|
|
if (0) {
|
|
function make_php_mailer() {
|
|
$mail = new PHPMailer();
|
|
$mail->IsSMTP();
|
|
//$mail->Mailer = 'smtp';
|
|
$mail->SMTPAuth = true;
|
|
$mail->SMTPSecure = "tls";
|
|
$mail->Host = "smtp.gmail.com";
|
|
$mail->Port = 587;
|
|
$mail->Username = "john.doe@gmail.com";
|
|
$mail->Password = "xxx";
|
|
// Google's application-specific password,
|
|
// if you are using the 2-Step Verification: 16 characters, no spaces.
|
|
// OR: Put here the regular Gmail password if you are not using the
|
|
// 2-Step Verification with your Gmail account.
|
|
// See https://support.google.com/accounts/answer/185833?hl=en";
|
|
$mail->SetFrom('admin@boincproject.com', 'John Doe');
|
|
$mail->AddReplyTo("admin@boincproject.com", "John Doe");
|
|
$mail->From = "admin@boincproject.com";
|
|
return $mail;
|
|
}
|
|
}
|
|
|
|
//-------------- Header and footer
|
|
|
|
// Put your project title and logo here
|
|
// If you include any links, prepend URL with $prefix
|
|
// if you need to open divs here close them in project_footer()
|
|
//
|
|
function project_banner($title, $prefix, $is_main) {
|
|
if ($is_main) {
|
|
echo '<img class="img-responsive" src="img/water.jpg">';
|
|
}
|
|
sample_navbar(secure_url_base(), get_logged_in_user(false), false);
|
|
if ($title) {
|
|
echo "<h2>$title</h2>\n";
|
|
}
|
|
}
|
|
//$fixed_navbar = true;
|
|
|
|
function project_footer($show_return, $show_date, $prefix) {
|
|
// If you include any links, prepend URL with $prefix
|
|
//
|
|
echo '<p></p>
|
|
<a class="brand boinc-logo" href="http://boinc.berkeley.edu/"><img align="middle" border="0" src="'.secure_url_base().'img/pb_boinc.gif" alt="Powered by BOINC"></a>
|
|
<br>
|
|
<p class="text-center"> ©'.gmdate("Y ").COPYRIGHT_HOLDER.'</p>
|
|
';
|
|
if ($show_date) {
|
|
$t = time_str(time());
|
|
echo "<center><small>".tra("Generated")." $t</small><center>\n";
|
|
}
|
|
}
|
|
|
|
//-------------- Ops access control
|
|
|
|
// Authorize access to administrative pages.
|
|
// You can check for login, IP address, or whatever you want.
|
|
//
|
|
function auth_ops_example() {
|
|
// if running from cmdline, skip checks
|
|
//
|
|
if (!$_SERVER['REMOTE_ADDR']) {
|
|
return;
|
|
}
|
|
|
|
// example: require login as a particular user (id 1 in this case)
|
|
//
|
|
if (0) {
|
|
auth_ops_userid(array(1));
|
|
return;
|
|
}
|
|
|
|
// example: require that logged-in user have ADMIN or DEV flags
|
|
// set in their forum_prefs.privilege
|
|
//
|
|
if (0) {
|
|
auth_ops_privilege();
|
|
return;
|
|
}
|
|
}
|
|
|
|
//-------------- Customizable functions
|
|
|
|
function show_profile_heading1() {
|
|
return tra("Your personal background.");
|
|
}
|
|
|
|
function show_profile_question1() {
|
|
return tra("Tell us about yourself. You could tell us where you're from, your age, occupation, hobbies, or anything else about yourself.");
|
|
}
|
|
|
|
function show_profile_heading2() {
|
|
return tra("Your opinions about %1", PROJECT);
|
|
}
|
|
|
|
function show_profile_question2() {
|
|
return tra("Tell us your thoughts about %1<ol>
|
|
<li>Why do you run %1?
|
|
<li>What are your views about the project?
|
|
<li>Any suggestions?
|
|
</ol>", PROJECT);
|
|
}
|
|
|
|
function project_workunit($wu){
|
|
// shown in the workunit page
|
|
}
|
|
|
|
function project_user_summary($user){
|
|
// shown in the user summary page
|
|
}
|
|
|
|
function project_user_page_private($user){
|
|
// shown in the private account page
|
|
}
|
|
|
|
function project_forum_post_rules() {
|
|
// additional forum post rules
|
|
return "";
|
|
}
|
|
|
|
//-------------- Support for per-app credit
|
|
|
|
if (0) {
|
|
|
|
// show project-specific credit on user/team pages
|
|
//
|
|
function show_app_credit_user($user, $app_name, $appids) {
|
|
$t = 0;
|
|
$a = 0;
|
|
$n = 0;
|
|
foreach ($appids as $appid) {
|
|
$cu = BoincCreditUser::lookup(
|
|
"userid=$user->id and appid=$appid and credit_type=0"
|
|
);
|
|
if ($cu) {
|
|
$t += $cu->total;
|
|
$a += $cu->expavg;
|
|
$n += $cu->njobs;
|
|
}
|
|
}
|
|
row2("$app_name credit",
|
|
format_credit_large($t)." total, ".
|
|
format_credit($a)." average".
|
|
" ($n tasks)"
|
|
);
|
|
}
|
|
function show_app_credit_team($team, $app_name, $appids) {
|
|
$t = 0;
|
|
$a = 0;
|
|
$n = 0;
|
|
foreach ($appids as $appid) {
|
|
$ct = BoincCreditTeam::lookup(
|
|
"teamid=$team->id and appid=$appid and credit_type=0"
|
|
);
|
|
if ($ct) {
|
|
$t += $ct->total;
|
|
$a += $ct->expavg;
|
|
$n += $ct->njobs;
|
|
}
|
|
}
|
|
row2("$app_name credit",
|
|
format_credit_large($t)." total, ".
|
|
format_credit($a)." average".
|
|
" ($n tasks)"
|
|
);
|
|
}
|
|
|
|
// a list of "sub-projects", used in the display of per-app credit and badges.
|
|
// A subproject is:
|
|
// - a set of 1 or more apps; an app can belong to at most 1 subproject.
|
|
// - a name, shown on the web site
|
|
// - a short name, used in badge names. Don't use "total".
|
|
//
|
|
$sub_projects = array(
|
|
array("name" => "Remote Test", "short_name" => "RT", "appids" => array(16)),
|
|
array("name" => "Uppercase", "short_name" => "UC", "appids" => array(1, 25)),
|
|
);
|
|
|
|
function project_user_credit($user){
|
|
global $sub_projects;
|
|
foreach ($sub_projects as $sp) {
|
|
show_app_credit_user($user, $sp["name"], $sp["appids"]);
|
|
}
|
|
}
|
|
|
|
function project_team_credit($team) {
|
|
global $sub_projects;
|
|
foreach ($sub_projects as $sp) {
|
|
show_app_credit_team($team, $sp["name"], $sp["appids"]);
|
|
}
|
|
}
|
|
|
|
} // if(0)
|
|
|
|
?>
|