'.print_r($ent,true).'';
$langs[$ent[0]]=$ent[1];
}
arsort($langs);
$blang=array_key_first($langs);
}
//echo $_SERVER['HTTP_ACCEPT_LANGUAGE'].' » '.$blang.'
'.N;
require '../lib/supplangs.php';
require '../lib/localemap.php';
$dlang=null;
if (preg_match('#/('.implode('|',$supplangscodes).')$#',$path,$lang)===1) {
$dlang=$lang[1];
$path=preg_replace('#/[^/]+$#','',$path);
} elseif (array_key_exists('HTTP_ACCEPT_LANGUAGE',$_SERVER)) {
foreach ($langs as $lang=>$val) {
if (in_array($lang,$supplangscodes)) {
$dlang=$lang;
break;
}
}
if (is_null($dlang)) {
foreach ($langs as $lang=>$val) {
foreach ($supplangs as $slang=>$slangd) {
if (preg_match('/^'.preg_quote($lang,'/').'/',$slang)) {
$dlang=$slang;
break(2);
}
}
}
}
}
if (is_null($dlang)) $dlang='en';
//echo 'dlang: '.$dlang.'
'.N;
$tdom='masthelp';
$locale=localemap($dlang);
//echo 'locale: '.$locale.'
'.N;
setlocale(LC_ALL,$locale);
bindtextdomain($tdom,'./locale');
textdomain($tdom);
bind_textdomain_codeset($tdom,'UTF-8');
$needstrans=false;
$menu=[
'guide'=>['liadd'=>null, 'href'=>$conf['instpath'].'/'.$dlang, 'title'=>_('Guide'), 'selected'=>false, 'submenu'=>null],
'instances'=>['liadd'=>null, 'href'=>$conf['instpath'].'/instances/'.$dlang, 'title'=>_('Instances'), 'selected'=>false, 'submenu'=>null],
'links'=>['liadd'=>null, 'href'=>$conf['instpath'].'/links/'.$dlang, 'title'=>_('Links'), 'selected'=>false, 'submenu'=>null],
'about'=>['liadd'=>null, 'href'=>$conf['instpath'].'/about/'.$dlang, 'title'=>_('About'), 'selected'=>false, 'submenu'=>[
'stats'=>['liadd'=>null, 'href'=>$conf['instpath'].'/stats/'.$dlang, 'title'=>_('Statistics'), 'selected'=>false, 'submenu'=>null],
'contribute'=>['liadd'=>null, 'href'=>$conf['instpath'].'/contribute/'.$dlang, 'title'=>_('Contribute'), 'selected'=>false, 'submenu'=>null]
]
],
'language'=>['liadd'=>null, 'href'=>null, 'title'=>_('Language'), 'selected'=>false, 'submenu'=>[]]
];
foreach ($supplangs as $slang=>$slangd)
$menu['language']['submenu'][$slang]=['liadd'=>null, 'href'=>$conf['instpath'].$path.'/'.$slang, 'title'=>$slangd['orname'], 'selected'=>false, 'submenu'=>null];
$menu['language']['submenu'][$dlang]['href']=null;
$menu['language']['submenu'][$dlang]['liadd']=null;
$menu['language']['submenu'][$dlang]['selected']=true;
$cont=[];
$cont['css']=['theme.css','menu.css'];
$cont['js']=['menu.js'];
$cont['bodyadd']='';
switch($path) {
case '':
$cont['fp']='home.php';
$cont['atit']=' - '._('Guide');
$cont['desc']=_('A thorough introduction to Mastodon');
$cont['js'][]='shsum.js';
$cont['js'][]='guideanchors.js';
$cont['js'][]='scrolltrack.js';
$cont['bodyadd']=' onscroll="scrolltrack()"';
$menu['guide']['href']=null;
$menu['guide']['selected']=true;
$url='home';
if (in_array($dlang,['ca'])) $needstrans=true;
break;
case '/instances':
$cont['fp']='instances.php';
$cont['atit']=' - '._('Instances');
$cont['desc']=_('Mastodon instances');
$cont['css'][]='instances.css';
$menu['instances']['href']=null;
$menu['instances']['selected']=true;
$url='instances';
if (in_array($dlang,['ca','es'])) $needstrans=true;
break;
case '/users':
$cont['fp']='users.php';
$cont['atit']=' - '._('Users');
$cont['desc']=_('Directory of Mastodon users');
$cont['css'][]='instances.css';
/*$menu['instances']['href']=null;
$menu['instances']['selected']=true;*/
$url='users';
break;
case '/links':
$cont['fp']='links.php';
$cont['atit']=' - '._('Links');
$cont['desc']=_('Useful Mastodon and Fediverse related links');
$menu['links']['href']=null;
$menu['links']['selected']=true;
$url='links';
break;
case '/about':
$cont['fp']='about.php';
$cont['atit']=' - '._('About');
$cont['desc']=_('Info about Mastodon Help’s authors, contributors, license');
$menu['about']['href']=null;
$menu['about']['selected']=true;
$url='about';
if (in_array($dlang,['ca','es'])) $needstrans=true;
break;
case '/stats':
$cont['fp']='stats.php';
$cont['atit']=' - '._('Statistics');
$cont['desc']=_('Statistics about Mastodon Help');
$cont['css'][]='stats.css';
$menu['about']['selected']=true;
$menu['about']['submenu']['stats']['href']=null;
$menu['about']['submenu']['stats']['selected']=true;
$url='stats';
if (in_array($dlang,['ca','es'])) $needstrans=true;
break;
case '/contribute':
$cont['fp']='contribute.php';
$cont['atit']=' - '._('Contribute');
$cont['desc']=_('Contribute to Mastodon Help development');
$menu['about']['selected']=true;
$menu['about']['submenu']['contribute']['href']=null;
$menu['about']['submenu']['contribute']['selected']=true;
$url='contribute';
if (in_array($dlang,['ca','es'])) $needstrans=true;
break;
default:
http_response_code(404);
$cont['fp']='404.php';
$cont['atit']=' - '._('Resource not found');
$cont['desc']=_('Resource not found');
$url='404';
/*$nffp='404.log';
$nff=@fopen($nffp,'a');
if ($nff) {
fwrite($nff,$_SERVER['REQUEST_URI'].N);
fclose($nff);
} else {
echo 'Mannaggia!';
}*/
if (in_array($dlang,['ca','es'])) $needstrans=true;
break;
}
$cont['mtit']=substr($cont['atit'],3);
$uid=[];
$uid[]=$_SERVER['REMOTE_ADDR'];
if (array_key_exists('HTTP_USER_AGENT',$_SERVER)) $uid[]=$_SERVER['HTTP_USER_AGENT'];
if (array_key_exists('HTTP_ACCEPT',$_SERVER)) $uid[]=$_SERVER['HTTP_ACCEPT'];
if (array_key_exists('HTTP_ACCEPT_LANGUAGE',$_SERVER)) $uid[]=$_SERVER['HTTP_ACCEPT_LANGUAGE'];
if (array_key_exists('HTTP_ACCEPT_ENCODING',$_SERVER)) $uid[]=$_SERVER['HTTP_ACCEPT_ENCODING'];
$uid=md5(implode('|',$uid));
try { $link=mysqli_connect($conf['db_host'],$conf['db_user_name'],$conf['db_user_password'],$conf['db_name'],$conf['db_port'],$conf['db_socket']); }
catch (Exception $error) { dienice(_('Couldn’t connect to database: ').mysqli_connect_error().' ['.mysqli_connect_errno().'].',2,false); }
if ($link===false) dienice(_('Couldn’t connect to database: ').mysqli_connect_error().' ['.mysqli_connect_errno().'].',2,false);
mysqli_set_charset($link,'utf8mb4');
mysqli_query($link,'INSERT INTO ZHits (UID,URL,Lang,TS) VALUES ("'.$uid.'","'.$url.'","'.$dlang.'",'.time().')') or dienice(__LINE__.': '.mysqli_error($link),2,true);
mysqli_close($link);
$menuout='';
function buildmenu($menu,$submenu=false) {
global $menuout;
foreach ($menu as $key=>$arr) {
$liclasses=[];
$menuout.='