@ -36,10 +36,10 @@ sub load_hdf()
my $ fname = "$TEMPLATE_DIR/main.cs" ;
die ( "Template directory is invalid ($fname not found)!" ) unless ( - e "$fname" ) ;
$ hdf - > setValue ( " TemplateDir", "$TEMPLATE_DIR" ) ;
$ hdf - > setValue ( " Settings. TemplateDir", "$TEMPLATE_DIR" ) ;
die ( "Documentation directory ($DOC_DIR) not found!" ) unless ( - d "$DOC_DIR" ) ;
$ hdf - > setValue ( " DocDir", "$DOC_DIR" ) ;
$ hdf - > setValue ( " Settings. DocDir", "$DOC_DIR" ) ;
# if it was requested as directory index (link from index.html), we should
# set a real script name - otherwise links with a query string will break
@ -224,16 +224,30 @@ sub validate_timeout()
}
# check for a valid interface language
sub validate_language ()
{
my $ language = shift ;
# check for non-alphanumeric character
return 0 if ( $ language =~ /\W/ ) ;
return 0 if ( $ language eq "" ) ;
return 0 if ( ! - e "$LANGUAGE_DIR/$language" . '.hdf' ) ;
return 1 ;
}
# check for a valid documentation language
sub validate_doc_language ()
{
my $ language = shift ;
# check for non-alphanumeric character
return 0 if ( $ language =~ /\W/ ) ;
return 0 if ( $ language eq "" ) ;
return 0 if ( ! - e "$DOC_DIR/$language" . '.hdf' ) ;
return 1 ;
}
################### main #########################
my $ query = new CGI ;
@ -251,22 +265,25 @@ if ($query->param('weblang')) {
& load_language_data ( $ pagedata , "$weblang" ) ;
# add the setting to every link
$ pagedata - > setValue ( 'Data.PostData.weblang' , "$weblang" ) ;
# select documentation
if ( - e "$DOC_DIR/$weblang" ) {
# selected web interface language
$ pagedata - > setValue ( 'Data.DocLang' , "$weblang" ) ;
} elseif ( - e "$DOC_DIR/$LANGUAGE" ) {
# default CryptoBox language
$ pagedata - > setValue ( 'Data.DocLang' , "$LANGUAGE" ) ;
} else {
# default hardcoded language (english)
$ pagedata - > setValue ( 'Data.DocLang' , "en" ) ;
}
} else {
$ pagedata - > setValue ( 'Data.Warning' , 'InvalidLanguage' ) ;
}
}
########## select documentation language ##########
if ( $ query - > param ( 'weblang' ) && & validate_doc_language ( $ query - > param ( 'weblang' ) ) ) {
# selected web interface language
$ pagedata - > setValue ( 'Settings.DocLang' , "$query->param('weblang')" ) ;
} elsif ( & validate_doc_language ( $ LANGUAGE ) ) {
# configured CryptoBox language
$ pagedata - > setValue ( 'Settings.DocLang' , "$LANGUAGE" ) ;
} else {
# default hardcoded language (english)
$ pagedata - > setValue ( 'Settings.DocLang' , "en" ) ;
}
# first: check for ssl!
if ( ! & check_ssl ( ) ) {
$ pagedata - > setValue ( 'Data.Error' , 'NoSSL' ) ;
@ -479,7 +496,7 @@ $pagedata->setValue('Data.Status.Mounted', &check_mounted() ? 1 : 0);
my $ output = & get_current_ip ( ) ;
$ pagedata - > setValue ( 'Data.Status.IP' , "$output" ) ;
( $ output = `$CB_SCRIPT diskinfo 2>&1 `) =~ s #\Z#<br/># ;
$ output = `$CB_SCRIPT diskinfo 2>&1 | sed 's#\$#<br/>#'` ;
$ pagedata - > setValue ( 'Data.PartitionInfo' , "$output" ) ;
# preset config settings for clearsilver