It is now possible to define the hostname from the admin page. This should definetely end the problem that the hostname couldn't be detected unter certain conditions.

This commit is contained in:
Michael Vogel 2014-11-08 00:07:21 +01:00
parent d81289c58b
commit 70ba1667e1
3 changed files with 26 additions and 9 deletions

View File

@ -522,28 +522,28 @@ if(! class_exists('App')) {
if (substr($this->query_string, 0, 1) == "/") if (substr($this->query_string, 0, 1) == "/")
$this->query_string = substr($this->query_string, 1); $this->query_string = substr($this->query_string, 1);
} }
if (x($_GET,'pagename')) if (x($_GET,'pagename'))
$this->cmd = trim($_GET['pagename'],'/\\'); $this->cmd = trim($_GET['pagename'],'/\\');
elseif (x($_GET,'q')) elseif (x($_GET,'q'))
$this->cmd = trim($_GET['q'],'/\\'); $this->cmd = trim($_GET['q'],'/\\');
// fix query_string // fix query_string
$this->query_string = str_replace($this->cmd."&",$this->cmd."?", $this->query_string); $this->query_string = str_replace($this->cmd."&",$this->cmd."?", $this->query_string);
// unix style "homedir" // unix style "homedir"
if(substr($this->cmd,0,1) === '~') if(substr($this->cmd,0,1) === '~')
$this->cmd = 'profile/' . substr($this->cmd,1); $this->cmd = 'profile/' . substr($this->cmd,1);
// Diaspora style profile url // Diaspora style profile url
if(substr($this->cmd,0,2) === 'u/') if(substr($this->cmd,0,2) === 'u/')
$this->cmd = 'profile/' . substr($this->cmd,2); $this->cmd = 'profile/' . substr($this->cmd,2);
/** /**
* *
* Break the URL path into C style argc/argv style arguments for our * Break the URL path into C style argc/argv style arguments for our
@ -639,6 +639,9 @@ if(! class_exists('App')) {
} }
} }
if (get_config('config','hostname') != "")
$this->hostname = get_config('config','hostname');
$this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' ); $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
return $this->baseurl; return $this->baseurl;
} }
@ -660,12 +663,19 @@ if(! class_exists('App')) {
if (file_exists(".htpreconfig.php")) if (file_exists(".htpreconfig.php"))
@include(".htpreconfig.php"); @include(".htpreconfig.php");
$this->hostname = $hostname; if (get_config('config','hostname') != "")
$this->hostname = get_config('config','hostname');
if (!isset($this->hostname) OR ($this->hostname == ""))
$this->hostname = $hostname;
} }
} }
function get_hostname() { function get_hostname() {
if (get_config('config','hostname') != "")
$this->hostname = get_config('config','hostname');
return $this->hostname; return $this->hostname;
} }

View File

@ -308,6 +308,7 @@ function admin_page_site_post(&$a){
// end relocate // end relocate
$sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : ''); $sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
$hostname = ((x($_POST,'hostname')) ? notags(trim($_POST['hostname'])) : '');
$banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false); $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
$info = ((x($_POST,'info')) ? trim($_POST['info']) : false); $info = ((x($_POST,'info')) ? trim($_POST['info']) : false);
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : ''); $language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
@ -413,6 +414,7 @@ function admin_page_site_post(&$a){
set_config('system','poll_interval',$poll_interval); set_config('system','poll_interval',$poll_interval);
set_config('system','maxloadavg',$maxloadavg); set_config('system','maxloadavg',$maxloadavg);
set_config('config','sitename',$sitename); set_config('config','sitename',$sitename);
set_config('config','hostname',$hostname);
set_config('system','suppress_language',$suppress_language); set_config('system','suppress_language',$suppress_language);
if ($banner==""){ if ($banner==""){
// don't know why, but del_config doesn't work... // don't know why, but del_config doesn't work...
@ -585,6 +587,9 @@ function admin_page_site(&$a) {
SSL_POLICY_SELFSIGN => t("Self-signed certificate, use SSL for local links only (discouraged)") SSL_POLICY_SELFSIGN => t("Self-signed certificate, use SSL for local links only (discouraged)")
); );
if ($a->config['hostname'] == "")
$a->config['hostname'] = $a->get_hostname();
$t = get_markup_template("admin_site.tpl"); $t = get_markup_template("admin_site.tpl");
return replace_macros($t, array( return replace_macros($t, array(
'$title' => t('Administration'), '$title' => t('Administration'),
@ -599,6 +604,7 @@ function admin_page_site(&$a) {
'$baseurl' => $a->get_baseurl(true), '$baseurl' => $a->get_baseurl(true),
// name, label, value, help string, extra data... // name, label, value, help string, extra data...
'$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), 'UTF-8'), '$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), 'UTF-8'),
'$hostname' => array('hostname', t("Host name"), $a->config['hostname'], ""),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""), '$banner' => array('banner', t("Banner/Logo"), $banner, ""),
'$info' => array('info',t('Additional Info'), $info, t('For public servers: you can add additional information here that will be listed at dir.friendica.com/siteinfo.')), '$info' => array('info',t('Additional Info'), $info, t('For public servers: you can add additional information here that will be listed at dir.friendica.com/siteinfo.')),
'$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices), '$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),

View File

@ -45,6 +45,7 @@
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'> <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
{{include file="field_input.tpl" field=$sitename}} {{include file="field_input.tpl" field=$sitename}}
{{include file="field_input.tpl" field=$hostname}}
{{include file="field_textarea.tpl" field=$banner}} {{include file="field_textarea.tpl" field=$banner}}
{{include file="field_textarea.tpl" field=$info}} {{include file="field_textarea.tpl" field=$info}}
{{include file="field_select.tpl" field=$language}} {{include file="field_select.tpl" field=$language}}