'.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.='0) $menuout.=' class="'.implode(' ',$liclasses).'"'; $menuout.='>'; if (!is_null($arr['href'])) { $menuout.=''.$arr['title'].''; } else { $menuout.=$arr['title']; } if (!is_null($arr['submenu'])) { //$menuout.=''; ($submenu) ? $class='ulb' : $class='ula'; $menuout.=N.''.N; } $menuout.=''.N; } } buildmenu($menu); //echo htmlentities($menuout); $cjrand=rand(0,999999); //$cjrand='0.1'; echo ' Mastodon Help'.$cont['atit'].' '.N; foreach ($cont['css'] as $val) echo ''.N; foreach ($cont['js'] as $val) echo ''.N; echo '