ok = (boolean) $success; $this->description = (isset($description)?$description : ($success===true? i18n('Passed') : i18n('Fail'))); $this->use_class = (isset($use_class)?$use_class:($success===true?'dep_ok' : 'dep_fail')); } public function getClass() { return $this->use_class; } public function setClass( $new_class ) { $this->use_class = $new_class; } public function getOK() { return $this->ok; } public function getDescription() { return translate($this->description); } public function setDescription( $new_desc ) { $this->description = $new_desc; } } /** * We put many of these checks before we even try to load always.php so that we * can try and do some diagnostic work to ensure it will load OK. */ function check_pgsql() { return new CheckResult(function_exists('pg_connect')); } function check_pdo() { return new CheckResult(class_exists('PDO')); } function check_pdo_pgsql() { global $loaded_extensions; if ( !check_pdo() ) return new CheckResult(false); return new CheckResult(isset($loaded_extensions['pdo_pgsql'])); } function check_gettext() { global $phpinfo, $loaded_extensions; if ( !function_exists('gettext') ) return new CheckResult(false); return new CheckResult(isset($loaded_extensions['gettext'])); } function check_iconv() { global $phpinfo, $loaded_extensions; if ( !function_exists('iconv') ) return new CheckResult(false); return new CheckResult(isset($loaded_extensions['iconv'])); } function check_suhosin_server_strip() { global $loaded_extensions; if ( !isset($loaded_extensions['suhosin']) ) return new CheckResult(true); return new CheckResult( ini_get('suhosin.server.strip') == "0" ); } function check_magic_quotes_gpc() { return new CheckResult( (get_magic_quotes_gpc() == 0) ); } function check_magic_quotes_runtime() { return new CheckResult( (get_magic_quotes_runtime() == 0) ); } $loaded_extensions = array_flip(get_loaded_extensions()); function do_error( $errormessage ) { // We can't translate this because we're testing these things even before // the translation interface is available... printf("
%s
", $errormessage ); } if ( !check_gettext()->getOK() ) do_error("The GNU 'gettext' extension for PHP is not available."); if ( !check_pgsql()->getOK() ) do_error("PHP 'pgsql' functions are not available"); if ( !check_pdo()->getOK() ) do_error("PHP 'PDO' module is not available"); if ( !check_pdo_pgsql()->getOK() ) do_error("The PDO drivers for PostgreSQL are not available"); if ( !check_iconv()->getOK() ) do_error("The 'iconv' extension for PHP is not available"); function get_phpinfo() { ob_start( ); phpinfo(); $phpinfo = ob_get_contents( ); ob_end_clean( ); $phpinfo = preg_replace( '{^.*?}s', '', $phpinfo); $phpinfo = preg_replace( '{.*?$}s', '', $phpinfo); return $phpinfo; } $phpinfo = get_phpinfo(); include("./always.php"); include("DAViCalSession.php"); if ( check_pgsql()->GetOK() ) { $session->LoginRequired( (isset($c->restrict_setup_to_admin) && $c->restrict_setup_to_admin ? 'Admin' : null ) ); } include("interactive-page.php"); include("page-header.php"); require_once("AwlQuery.php"); function check_datetime() { if ( class_exists('DatexTime') ) return new CheckResult(true); $result = new CheckResult(false); $result->setClass('dep_warning'); $result->setDescription(i18n('Most of DAViCal will work but upgrading to PHP 5.2 or later is strongly recommended.')); return $result; } function check_schema_version() { global $c; if ( $c->want_dbversion[0] == $c->schema_major && $c->want_dbversion[1] == $c->schema_minor && $c->want_dbversion[2] == $c->schema_patch ) { return new CheckResult( true ); } $result = new CheckResult(false); if ( $c->want_dbversion[0] < $c->schema_major || ($c->want_dbversion[0] == $c->schema_major && $c->want_dbversion[1] < $c->schema_minor) || ($c->want_dbversion[0] == $c->schema_major && $c->want_dbversion[1] == $c->schema_minor && $c->want_dbversion[2] < $c->schema_patch) ) { $result->setClass('dep_warning'); } $result->setDescription( sprintf(i18n('Want: %s, Currently: %s'), implode('.',$c->want_dbversion), $c->schema_major.'.'.$c->schema_minor.'.'.$c->schema_patch)); return $result; } function check_davical_version() { global $c; $url = 'http://www.davical.org/current_davical_version?v='.$c->version_string; $version_file = @fopen($url, 'r'); if ( ! $version_file ) return new CheckResult( false, translate("Could not retrieve") . " '$url'", 'dep_warning' ); $current_version = trim(fread( $version_file,12)); fclose($version_file); $result = new CheckResult($c->version_string == $current_version); if ( ! $result->getOK() ) { $result->setDescription( sprintf(i18n('Want: %s, Currently: %s'), $current_version, $c->version_string) ); if ( $c->version_string > $current_version ) $result->setClass('dep_warning'); } return $result; } function check_awl_version() { global $c; if ( !function_exists('awl_version') ) return new CheckResult(false); $result = new CheckResult($c->want_awl_version == awl_version()); if ( ! $result->getOK() ) { $result->setDescription( sprintf(i18n('Want: %s, Currently: %s'), $c->want_awl_version, awl_version()) ); if ( $c->want_awl_version < awl_version() ) $result->setClass('dep_warning'); } return $result; } function build_site_statistics() { $principals = translate('No. of Principals'); $collections = translate('No. of Collections'); $resources = translate('No. of Resources'); $table = <<'
. $config_warnings.'$paragraph_setup
| $th_dependency | $th_status |
|---|
If you can read this then things must be mostly working already.
$davical_configuration_errorsThe installation page on the DAViCal website has some further information on how to install and configure this application.
The client setup page on the DAViCal website has information on how to configure Evolution, Sunbird, Lightning and Mulberry to use remotely hosted calendars.
The administrative interface has no facility for viewing or modifying calendar data.
$site_statistics_table