diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 064bb4a5a26ea75c229c15396a3014a4d8455530..2ccd9bb4f4b879c4f1fce56405b570a1f6733015 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -982,6 +982,7 @@ CREATE TABLE `web_domain` ( `ssl_cert` mediumtext NULL, `ssl_bundle` mediumtext NULL, `ssl_action` varchar(16) NULL, + `stats_password` varchar(255) default NULL, `apache_directives` text, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`domain_id`) diff --git a/interface/web/sites/form/web_domain.tform.php b/interface/web/sites/form/web_domain.tform.php index ffc25853a912d86049b692878f3c09bad6fbcba7..c4494e94ab76ce85b3f10fda6984e410442d9dec 100644 --- a/interface/web/sites/form/web_domain.tform.php +++ b/interface/web/sites/form/web_domain.tform.php @@ -322,6 +322,31 @@ $form["tabs"]['ssl'] = array ( ) ); +//* Statistics +$form["tabs"]['stats'] = array ( + 'title' => "Stats", + 'width' => 100, + 'template' => "templates/web_domain_stats.htm", + 'readonly' => false, + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'stats_password' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'PASSWORD', + 'encryption' => 'CRYPT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + if($_SESSION["s"]["user"]["typ"] == 'admin') { $form["tabs"]['advanced'] = array ( diff --git a/interface/web/sites/lib/lang/en.lng b/interface/web/sites/lib/lang/en.lng index 73484235eb044d6cd3bd1a6d551df6a0183bd98d..778abfc01cff7603a6c4364367b086f89e127110 100644 --- a/interface/web/sites/lib/lang/en.lng +++ b/interface/web/sites/lib/lang/en.lng @@ -2,7 +2,7 @@ $wb['Database'] = 'Database'; $wb['Options'] = 'Options'; $wb['Shell User'] = 'Shell User'; -$wb['Domain'] = 'Domain'; +$wb['Domain'] = 'Website'; $wb['Redirect'] = 'Redirect'; $wb['SSL'] = 'SSL'; $wb['Subdomain'] = 'Subdomain'; @@ -13,4 +13,5 @@ $wb['FTP'] = 'FTP'; $wb['Shell-User'] = 'Shell-User'; $wb['Shell'] = 'Shell'; $wb['Websites'] = 'Websites'; +$wb["Stats"] = 'Statistics'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng index 9b1d5bb7c1fe07f127efb0785c5ecdaba8cf1723..c27dbffa542de34e456a7b1c5b640f7dd280cab8 100644 --- a/interface/web/sites/lib/lang/en_web_domain.lng +++ b/interface/web/sites/lib/lang/en_web_domain.lng @@ -45,4 +45,6 @@ $wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; $wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; $wb['error_ssl_country_empty'] = 'SSL Country is empty.'; $wb["client_group_id_txt"] = 'Client'; +$wb["stats_password_txt"] = 'Webstatistics password'; + ?> diff --git a/interface/web/sites/templates/web_domain_stats.htm b/interface/web/sites/templates/web_domain_stats.htm new file mode 100644 index 0000000000000000000000000000000000000000..8152842ba34f95963d73e238356fd70ee0960108 --- /dev/null +++ b/interface/web/sites/templates/web_domain_stats.htm @@ -0,0 +1,22 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="redirect_path">{tmpl_var name='stats_password_txt'}</label> + <input name="stats_password" id="stats_password" value="{tmpl_var name='stats_password'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 97bcee0759c8da36607aaac80654d896e9c6230e..4d393fbb3391cd86e2bb46a6bf08a34ee3ccb258 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -670,6 +670,25 @@ class apache2_plugin { $app->log("Removing File $vhost_file",LOGLEVEL_DEBUG); } + //* Create .htaccess and .htpasswd file for website statistics + if(!is_file($data["new"]["document_root"].'/web/stats/.htaccess') { + $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data["new"]["document_root"]."/.htpasswd_stats\n<limit GET PUT POST>\nrequire valid-user\n</limit>"; + file_put_contents($data["new"]["document_root"].'/web/stats/.htaccess',$ht_file); + chmod($data["new"]["document_root"].'/web/stats/.htaccess',0664); + unset($ht_file); + } + + if(!is_file($data["new"]["document_root"].'/.htpasswd_stats') || $data["new"]["stats_password"] != $data["old"]["stats_password"]) { + if(trim($data["new"]["stats_password"]) != '') { + $htp_file = 'admin:'.trim($data["new"]["stats_password"]); + file_put_contents($data["new"]["document_root"].'/.htpasswd_stats',$htp_file); + chmod($data["new"]["document_root"].'/.htpasswd_stats',0664); + unset($htp_file); + } + } + + + // request a httpd reload when all records have been processed $app->services->restartServiceDelayed('httpd','reload');