index.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. <?php
  2. define('N',"\n");
  3. $instpath='/mastostart';
  4. $path=preg_replace('/^'.preg_quote($instpath,'/').'/','',$_SERVER['REQUEST_URI']);
  5. $ndir=preg_match_all('/\//',$path)-1;
  6. $prepath='';
  7. for ($i=0; $i<$ndir; $i++)
  8. $prepath.='../';
  9. $menu=array(
  10. 'guide'=>array('liadd'=>null, 'href'=>$instpath.'/', 'title'=>'Guide', 'selected'=>false, 'submenu'=>null),
  11. 'instances'=>array('liadd'=>null, 'href'=>$instpath.'/instances', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
  12. 'about'=>array('liadd'=>null, 'href'=>$instpath.'/about', 'title'=>'About', 'selected'=>false, 'submenu'=>null),
  13. 'language'=>array('liadd'=>null, 'href'=>null, 'title'=>'Language', 'selected'=>false, 'submenu'=>array(
  14. 'inglese'=>array('liadd'=>'onclick="golang(\'en\')" onmouseover="this.style.cursor=\'pointer\'"', 'href'=>null, 'title'=>'English', 'selected'=>false, 'submenu'=>null),
  15. 'italiano'=>array('liadd'=>'onclick="golang(\'it\')" onmouseover="this.style.cursor=\'pointer\'"', 'href'=>null, 'title'=>'Italiano', 'selected'=>false, 'submenu'=>null)
  16. )
  17. )
  18. );
  19. function tradmenu($lang) {
  20. global $menu;
  21. switch ($lang) {
  22. case 'it':
  23. $menu['guide']['title']='Guida';
  24. $menu['guide']['href'].='it';
  25. $menu['instances']['title']='Istanze';
  26. $menu['instances']['href'].='/it';
  27. $menu['about']['title']='Info';
  28. $menu['about']['href'].='/it';
  29. $menu['language']['title']='Lingua';
  30. break;
  31. }
  32. }
  33. switch($path) {
  34. case '/':
  35. $cont=array(
  36. 'fp'=>'home_en.php',
  37. 'lang'=>'en',
  38. 'atit'=>' - Guide',
  39. 'desc'=>'A thorough introduction to Mastodon',
  40. 'js'=>array('shsum','guideanchors','scrolltrack')
  41. );
  42. $menu['guide']['liadd']='onclick="shsum()" onmouseover="this.style.cursor=\'pointer\'; this.style.textDecoration=\'underline\'" onmouseout="this.style.textDecoration=\'none\'"';
  43. $menu['guide']['href']=null;
  44. $menu['guide']['selected']=true;
  45. $menu['language']['submenu']['inglese']['liadd']=null;
  46. $menu['language']['submenu']['inglese']['selected']=true;
  47. break;
  48. case '/it':
  49. $cont=array(
  50. 'fp'=>'home_it.php',
  51. 'lang'=>'it',
  52. 'atit'=>' - Guida',
  53. 'desc'=>'Una approfondita introduzione a Mastodon',
  54. 'js'=>array('shsum','guideanchors','scrolltrack')
  55. );
  56. tradmenu('it');
  57. $menu['guide']['liadd']='onclick="shsum()" onmouseover="this.style.cursor=\'pointer\'"';
  58. $menu['guide']['href']=null;
  59. $menu['guide']['selected']=true;
  60. $menu['language']['submenu']['italiano']['liadd']=null;
  61. $menu['language']['submenu']['italiano']['selected']=true;
  62. break;
  63. case '/instances':
  64. $cont=array(
  65. 'fp'=>'instances_en.php',
  66. 'lang'=>'en',
  67. 'atit'=>' - Instances',
  68. 'desc'=>'Recommended Mastodon Instances',
  69. 'js'=>array()
  70. );
  71. $menu['instances']['href']=null;
  72. $menu['instances']['selected']=true;
  73. $menu['language']['submenu']['inglese']['liadd']=null;
  74. $menu['language']['submenu']['inglese']['selected']=true;
  75. break;
  76. case '/instances/it':
  77. $cont=array(
  78. 'fp'=>'instances_it.php',
  79. 'lang'=>'it',
  80. 'atit'=>' - Istanze',
  81. 'desc'=>'Istanze Mastodon consigliate',
  82. 'js'=>array()
  83. );
  84. tradmenu('it');
  85. $menu['instances']['href']=null;
  86. $menu['instances']['selected']=true;
  87. $menu['language']['submenu']['italiano']['liadd']=null;
  88. $menu['language']['submenu']['italiano']['selected']=true;
  89. break;
  90. case '/about':
  91. $cont=array(
  92. 'fp'=>'about_en.php',
  93. 'lang'=>'en',
  94. 'atit'=>' - About us',
  95. 'desc'=>'Infos about Mastodon Startpage’s authors, contributors, license',
  96. 'js'=>array()
  97. );
  98. $menu['about']['href']=null;
  99. $menu['about']['selected']=true;
  100. $menu['language']['submenu']['inglese']['liadd']=null;
  101. $menu['language']['submenu']['inglese']['selected']=true;
  102. break;
  103. case '/about/it':
  104. $cont=array(
  105. 'fp'=>'about_it.php',
  106. 'lang'=>'it',
  107. 'atit'=>' - Info',
  108. 'desc'=>'Informazioni sugli autori, i collaboratori e la licenza di Mastodon Startpage',
  109. 'js'=>array()
  110. );
  111. tradmenu('it');
  112. $menu['about']['href']=null;
  113. $menu['about']['selected']=true;
  114. $menu['language']['submenu']['italiano']['liadd']=null;
  115. $menu['language']['submenu']['italiano']['selected']=true;
  116. break;
  117. default:
  118. $cont=array(
  119. 'fp'=>'404.php',
  120. 'lang'=>'en',
  121. 'atit'=>' - 404',
  122. 'desc'=>'Page not found',
  123. 'js'=>array()
  124. );
  125. break;
  126. }
  127. /*
  128. <li><a href="<?php echo($instpath); ?>">Guide</a></li>
  129. <li><a href="instances">Instances</a></li>
  130. <li><a href="about">About us</a></li>
  131. <li onmouseover="chulsh(this,true)" onmouseout="chulsh(this,false)">Language
  132. <ul class="ula" onmouseover="ulsh(this,true)" onmouseout="ulsh(this,false)">
  133. <li><a href="#">English</a></li>
  134. <li><a href="#">Italiano</a></li>
  135. </ul>
  136. </li>
  137. */
  138. $menuout='';
  139. function buildmenu($menu) {
  140. global $menuout;
  141. foreach ($menu as $key=>$arr) {
  142. $menuout.='<li';
  143. if (!is_null($arr['liadd'])) $menuout.=' '.$arr['liadd'];
  144. if (!is_null($arr['submenu'])) $menuout.=' onmouseover="chulsh(this,true)" onmouseout="chulsh(this,false)"';
  145. if ($arr['selected']) $menuout.=' class="hil"';
  146. $menuout.='>';
  147. if (!is_null($arr['href']))
  148. $menuout.='<a href="'.$arr['href'].'">'.$arr['title'].'</a>';
  149. else
  150. $menuout.=$arr['title'];
  151. if (!is_null($arr['submenu'])) {
  152. // qui bisognerebbe aggiungere che a seconda del "livello" imposta class giusta: ula, oppure ulb per livello > 1
  153. $menuout.=N.'<ul class="ula" onmouseover="ulsh(this,true)" onmouseout="ulsh(this,false)">'.N;
  154. buildmenu($arr['submenu']);
  155. $menuout.='</ul>'.N;
  156. }
  157. $menuout.='</li>'.N;
  158. }
  159. }
  160. buildmenu($menu);
  161. //echo(htmlentities($menuout));
  162. $cjrand=rand(0,999999);
  163. ?>
  164. <!DOCTYPE HTML>
  165. <html lang="<?php echo($cont['lang']); ?>">
  166. <head>
  167. <title>Mastodon Startpage<?php echo($cont['atit']); ?></title>
  168. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  169. <meta name="description" content="<?php echo($cont['desc']); ?>">
  170. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  171. <link rel="icon" type="image/png" href="<?php echo($prepath); ?>imgs/icona-32.png" sizes="32x32">
  172. <link rel="icon" type="image/png" href="<?php echo($prepath); ?>imgs/icona-192.png" sizes="192x192">
  173. <link rel="icon" type="image/png" href="<?php echo($prepath); ?>imgs/icona-512.png" sizes="512x512">
  174. <link rel="apple-touch-icon-precomposed" href="<?php echo($prepath); ?>imgs/icona-180.png">
  175. <link rel="stylesheet" type="text/css" href="<?php echo($prepath); ?>theme.css?v=<?php echo($cjrand); ?>">
  176. <?php
  177. foreach ($cont['js'] as $val)
  178. echo('<script language="JavaScript" src="js/'.$val.'.js?v='.$cjrand.'"></script>'.N);
  179. ?>
  180. <script language="JavaScript">
  181. <!--
  182. function chulsh(el,sh) {
  183. if (sh)
  184. el.querySelector('ul').style='display:block';
  185. else
  186. el.querySelector('ul').style='display:none';
  187. }
  188. function ulsh(el,sh) {
  189. if (sh)
  190. el.style='display:block';
  191. else
  192. el.style='display:none';
  193. }
  194. function golang(lang) {
  195. var loc=document.location.href;
  196. loc=loc.replace(/#.*$/,'');
  197. loc=loc.replace(/\/$/,'');
  198. if (document.documentElement.lang=='en') {
  199. if (lang!='en')
  200. document.location.href=loc+'/'+lang;
  201. } else {
  202. if (lang!='en')
  203. document.location.href=loc.substr(0,loc.length-3)+'/'+lang;
  204. else
  205. document.location.href=loc.substr(0,loc.length-3);
  206. }
  207. }
  208. //-->
  209. </script>
  210. </head>
  211. <?php
  212. require($cont['fp']);
  213. ?>
  214. </html>