Ignore:
Timestamp:
Feb 14, 2013, 7:51:59 PM (11 years ago)
Author:
chronos
Message:
  • Upraveno: Stránky jsou nyní generovány do výstupního řetězce, který je na konci skriptu funkci ShowPage jako parametr a ta zajistí zobrazení hlavičky i patičky. Nově tedy není výstup zobrazován přes echo na mnoha místech ale jen přes jedno místo. To umožnilo kontrolu či formátování výstupního HTML kódu před zasláním uživateli na výstup. Dále toto umožňuje vyhodnocení zobrazení hlavičky až po dokončení generování obsahu stránky. To se hodí např. při přihlašování a odhlašování, kdy změna přihlášeného uživatele se v hlavičce projeví ihned už při generování výsledné stránky.
Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
        22aowow
        33nbproject
         4.settings
         5.project
         6.buildpath
  • trunk/includes/global.php

    r500 r504  
    1616include_once(dirname(__FILE__).'/global_function.php');
    1717if(file_exists(dirname(__FILE__).'/config.php')) include_once(dirname(__FILE__).'/config.php');
    18   else die('Nenalezen konfigurační soubor config.php ve složce includes. Vytvořte jej zkopírováním vzoru config.sample.php.');
     18  else die('Nenalezen konfigurační soubor config.php ve složce includes. '.
     19        'Vytvořte jej zkopírováním vzoru config.sample.php.');
    1920date_default_timezone_set($Config['Web']['Timezone']);
    2021include_once(dirname(__FILE__).'/Database.php');
     
    5960  global $Config, $System, $User, $System;
    6061 
    61   echo('<div class="Menu">');
    62   echo('<span class="MenuItem"></span>');
     62  $Output = '<div class="Menu">';
     63  $Output .= '<span class="MenuItem"></span>';
    6364  if($User->Licence(LICENCE_USER))
    6465  {
    6566    //$DbResult = $System->Database->query('SELECT `Id`, `Name` FROM `Team` WHERE `Id`='.$User->Team);
    6667    //$Team = $DbResult->fetch_assoc();
    67     //echo('<span class="MenuItem">Moje překlady: <a href="">Dokončené</a> <a href="">Rozpracované</a> <a href="">Exporty</a> Tým: <a href="">'.$Team['name'].'</a></span>');
    68     echo('<span class="MenuItem2">'.$User->Name.' <a href="'.$System->Link('/?action=logout').'">Odhlášení</a> <a href="'.$System->Link('/Options.php').'">Nastavení</a>');
    69     echo(' <a title="Vámi přeložené texty" href="'.$System->Link('/TranslationList.php?user='.$User->Id.'&amp;group=0&amp;state=2&amp;text=&amp;entry=').'">Přeložené</a>');
    70     echo(' <a title="Vaše rozpracované text" href="'.$System->Link('/TranslationList.php?user='.$User->Id.'&amp;group=0&amp;state=3&amp;text=&amp;entry=').'">Rozpracované</a>');
    71     echo(' <a title="Nikým nepřeložené texty" href="'.$System->Link('/TranslationList.php?user=0&amp;group=0&amp;state=1&amp;text=&amp;entry=').'">Nepřeložené</a>');
    72     echo('</span>');
     68    //$Output .= ''<span class="MenuItem">Moje překlady: <a href="">Dokončené</a> <a href="">Rozpracované</a> <a href="">Exporty</a> Tým: <a href="">'.$Team['name'].'</a></span>';
     69    $Output .= '<span class="MenuItem2">'.$User->Name.' <a href="'.$System->Link('/?action=logout').'">Odhlášení</a> <a href="'.$System->Link('/Options.php').'">Nastavení</a>'.
     70      ' <a title="Vámi přeložené texty" href="'.$System->Link('/TranslationList.php?user='.$User->Id.'&amp;group=0&amp;state=2&amp;text=&amp;entry=').'">Přeložené</a>'.
     71      ' <a title="Vaše rozpracované text" href="'.$System->Link('/TranslationList.php?user='.$User->Id.'&amp;group=0&amp;state=3&amp;text=&amp;entry=').'">Rozpracované</a>'.
     72      ' <a title="Nikým nepřeložené texty" href="'.$System->Link('/TranslationList.php?user=0&amp;group=0&amp;state=1&amp;text=&amp;entry=').'">Nepřeložené</a>'.
     73      '</span>';
    7374  } else
    7475  {
    75     echo('<span class="MenuItem2"><form action="?action=login" method="post"> Jméno: <input type="text" name="LoginUser" size="8 " /> Heslo: <td><input type="password" name="LoginPass" size="8" /> <input type="submit" value="Přihlásit" /></form> &nbsp; <a href="'.$System->Link('/registrace.php').'">Registrace</a></span>');
    76   }
    77   echo('</div>');
     76    $Output .= '<span class="MenuItem2"><form action="?action=login" method="post"> Jméno: <input type="text" name="LoginUser" size="8 " /> Heslo: <td><input type="password" name="LoginPass" size="8" /> <input type="submit" value="Přihlásit" /></form> &nbsp; <a href="'.$System->Link('/registrace.php').'">Registrace</a></span>';
     77  }
     78  $Output .= '</div>';
     79  return($Output);
    7880}
    7981
     
    8284  global $User;
    8385 
     86  $Output = '';
    8487  if($User->Licence(LICENCE_USER))
    8588  {
    86      // echo 'Jste přihlášen jako: <b>'.$User->Id.'</b> <a href="index.php?Logout">Odhlásit</a>';
     89     // $Output .= 'Jste přihlášen jako: <b>'.$User->Id.'</b> <a href="index.php?Logout">Odhlásit</a>';
    8790  } else
    8891  {
    89     echo('<strong>Přihlášení:</strong>
     92    $Output .= '<strong>Přihlášení:</strong>
    9093  <form action="" method="post">
    9194  <table>
     
    100103    </tr>
    101104  </table>
    102   </form>');
    103   }
     105  </form>';
     106  }
     107  return($Output);
    104108}
    105109
     
    108112  global $System;
    109113 
    110   echo('<strong>Hledání:</strong>'.
     114  $Output = '<strong>Hledání:</strong>'.
    111115  '<form action="'.$System->Link('/action.php').'" method="get"><div>'.
    112116  '<input type="hidden" name="action" value="search" />'.
     
    119123    '</tr>'.
    120124  '</table></div>'.
    121   '</form>');
     125  '</form>';
     126  return($Output);
    122127}
    123128
     
    146151  );
    147152 
    148   echo('<strong>Hlavní menu:</strong>'.
    149     '<div class="verticalmenu"><ul>');
     153  $Output = '<strong>Hlavní menu:</strong>'.
     154    '<div class="verticalmenu"><ul>';
    150155  foreach($Menu as $MenuTarget => $MenuItem)
    151156  {
    152157    if(isset($MenuItem[3])) $OnClick = ' onclick="'.$MenuItem[3].'"';
    153158      else $OnClick = '';
    154     if($User->Licence($MenuItem[0])) echo('<li><a class="verticalmenua" title="'.$MenuItem[1].'" href="'.$MenuTarget.'"'.$OnClick.'>'.$MenuItem[2].'</a></li>');
     159    if($User->Licence($MenuItem[0]))
     160      $Output .= '<li><a class="verticalmenua" title="'.$MenuItem[1].'" href="'.$MenuTarget.'"'.$OnClick.'>'.$MenuItem[2].'</a></li>';
    155161  }   
    156   echo('</ul></div>');
     162  $Output .= '</ul></div>';
     163  return($Output);
    157164}
    158165
     
    161168  global $TranslationTree, $User, $System;
    162169
    163   echo('<strong>Překladové skupiny:</strong><br /><div id="TranslationMenu">');
     170  $Output = '<strong>Překladové skupiny:</strong><br /><div id="TranslationMenu">';
    164171  foreach($TranslationTree as $Group)
    165172  {
    166     echo('<div id="menuitem-group'.$Group['Id'].'" onmouseover="show(\'group'.$Group['Id'].'\')" onmouseout="hide(\'group'.$Group['Id'].'\')">'.
     173    $Output .= '<div id="menuitem-group'.$Group['Id'].'" onmouseover="show(\'group'.$Group['Id'].'\')" onmouseout="hide(\'group'.$Group['Id'].'\')">'.
    167174      '<a href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;action=filter').'">'.$Group['Name'].'</a></div>'.
    168       '<div id="group'.$Group['Id'].'" class="hidden-menu-item" onmouseover="show(\'group'.$Group['Id'].'\')" onmouseout="hide(\'group'.$Group['Id'].'\')">');
    169     echo('&nbsp;<a title="Zde můžete začít překládat" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;state=1&amp;user=0&amp;entry=&amp;text=').'">Nepřeložené</a><br />'.
    170     '&nbsp;<a title="Přeložené texty, můžete zde hlasovat, nebo opravovat překlady" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;state=2&amp;user=0&amp;entry=&amp;text=').'">Přeložené</a><br />');
     175      '<div id="group'.$Group['Id'].'" class="hidden-menu-item" onmouseover="show(\'group'.$Group['Id'].'\')" onmouseout="hide(\'group'.$Group['Id'].'\')">';
     176    $Output .= '&nbsp;<a title="Zde můžete začít překládat" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;state=1&amp;user=0&amp;entry=&amp;text=').'">Nepřeložené</a><br />'.
     177    '&nbsp;<a title="Přeložené texty, můžete zde hlasovat, nebo opravovat překlady" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;state=2&amp;user=0&amp;entry=&amp;text=').'">Přeložené</a><br />';
    171178    if($User->Licence(LICENCE_USER))
    172179    {
    173       echo('&nbsp;<a title="Nedokončené překlady" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;state=3').'">Rozepsané</a><br />
    174         &nbsp;<a title="Všechny překlady, které jste přeložil" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;state=1&amp;user='.$User->Id).'&amp;entry=&amp;text=">Vlastní</a><br />');
     180      $Output .= '&nbsp;<a title="Nedokončené překlady" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;state=3').'">Rozepsané</a><br />
     181        &nbsp;<a title="Všechny překlady, které jste přeložil" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;state=1&amp;user='.$User->Id).'&amp;entry=&amp;text=">Vlastní</a><br />';
    175182    }
    176     echo('&nbsp;<a title="Sestavit speciální filtr" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;action=filter').'">Filtr</a><br />');
    177     echo('</div>');
    178   }
    179   echo ('</div>');
     183    $Output .= '&nbsp;<a title="Sestavit speciální filtr" href="'.$System->Link('/TranslationList.php?group='.$Group['Id'].'&amp;action=filter').'">Filtr</a><br />';
     184    $Output .= '</div>';
     185  }
     186  $Output .= '</div>';
     187  return($Output);
    180188}
    181189
     
    184192  global $System, $Moderators, $User;
    185193 
    186   echo('Online překladatelé:<br />');
     194  $Output = 'Online překladatelé:<br />';
    187195  $DbResult = $System->Database->query('SELECT `Name`, `GM`, `ID` FROM `User` WHERE `LastLogin` >= NOW() - 300 AND ((`LastLogout` < `LastLogin`) OR (ISNULL(`LastLogout`)))');
    188196  while($DbUser = $DbResult->fetch_assoc())
    189197  {
    190     if($User->Licence(LICENCE_MODERATOR)) $Name = '<a href="user.php?user='.$DbUser['ID'].'">'.$DbUser['Name'].'</a>';
    191     else $Name = $DbUser['Name'];
     198    if($User->Licence(LICENCE_MODERATOR))
     199      $Name = '<a href="user.php?user='.$DbUser['ID'].'">'.$DbUser['Name'].'</a>';
     200      else $Name = $DbUser['Name'];
    192201    $TextGM = '';
    193     echo('<strong>'.$Name.'</strong>'.$TextGM.'<br />');
    194   }
    195 }
    196 
    197 function ShowPage()
     202    $Output .= '<strong>'.$Name.'</strong>'.$TextGM.'<br />';
     203  }
     204  return($Output);
     205}
     206
     207function ShowHeader()
    198208{
    199209  global $User, $RSSChannels, $PageFooterRequested, $System; 
    200210 
    201   echo('<?xml version="1.0" encoding="'.$System->Config['Web']['Charset'].'"?>
     211  $Output = '<?xml version="1.0" encoding="'.$System->Config['Web']['Charset'].'"?>
    202212  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    203213<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cz">'.
     
    209219'<link rel="stylesheet" href="'.$System->Link('/style/style.css').'" type="text/css" media="all" />'.
    210220'<script type="text/javascript" src="'.$System->Link('/style/global.js').'"></script>'.
    211 '<link rel="shortcut icon" href="'.$System->Link('/images/favicon.ico').'" />');
     221'<link rel="shortcut icon" href="'.$System->Link('/images/favicon.ico').'" />';
    212222  if(isset($RSSChannels))
    213223  foreach($RSSChannels as $Channel)
    214     echo(' <link rel="alternate" title="'.$Channel['Title'].'" href="'.$Channel['URL'].'" type="application/rss+xml" />');
    215   echo('<title>'.$System->Config['Web']['Title'].'</title>
     224    $Output .= ' <link rel="alternate" title="'.$Channel['Title'].'" href="'.$Channel['URL'].'" type="application/rss+xml" />';
     225  $Output .= '<title>'.$System->Config['Web']['Title'].'</title>
    216226</head>
    217 <body>');
    218 /*
    219 echo('<table id="bannertable"><tr>'.
    220   '<td id="banner1"></td>'.
    221   '<td id="banner"><div id="bannertitle">'.$Config['Web']['Title'].'</div></td>'.
    222   '<td id="banner2"></td></tr>'.
    223 '</table>');
    224 */
     227<body>';
    225228
    226229  if(array_key_exists('action', $_GET))
     
    257260    }
    258261  }
    259   ShowTopBar();
    260 
    261   echo('<table class="page"><tr><td class="menu">');
    262   ShowMainMenu();
    263   ShowOnlineUserList();
    264   echo('<br />');
    265   ShowSearchBox();
    266   echo('</td><td id="border-left"></td><td class="content">');
     262  $Output .= ShowTopBar();
     263
     264  $Output .= '<table class="page"><tr><td class="menu">';
     265  $Output .= ShowMainMenu();
     266  $Output .= ShowOnlineUserList();
     267  $Output .= '<br />';
     268  $Output .= ShowSearchBox();
     269  $Output .= '</td><td id="border-left"></td><td class="content">';
    267270  $PageFooterRequested = true;
    268   if(isset($Message)) ShowMessage($Message, $MessageType);
    269 }
    270 
    271 $UnitNames = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB');
    272  
    273 function HumanSize($Value)
    274 {
    275   global $UnitNames;
    276 
    277   $UnitIndex = 0;
    278   while($Value > 1024)
    279   {
    280     $Value = round($Value / 1024, 3);
    281     $UnitIndex++;
    282   }
    283   return($Value.' '.$UnitNames[$UnitIndex]);
     271  if(isset($Message)) $Output .= ShowMessage($Message, $MessageType);
     272  return($Output);
    284273}
    285274
     
    292281    $ScriptGenerateDuration = round(GetMicrotime() - $ScriptStartTime, 2);
    293282
    294     echo('</td>');
    295     echo('<td class="menu2">');
    296     ShowTranslatedMenu();
    297     echo('</td>'.
     283    $Output = '</td>'.
     284      '<td class="menu2">';
     285    $Output .= ShowTranslatedMenu();
     286    $Output .= '</td>'.
    298287    '</tr><tr>'.
    299288    '<td colspan="4" class="page-bottom">Autoři: '.$System->Config['Web']['Authors'].
    300289    ' &nbsp; <a href="http://svn.zdechov.net/trac/wowpreklad/browser/trunk">Zdrojové soubory</a> &nbsp; '.
    301290    '<a href="http://svn.zdechov.net/trac/wowpreklad/log/trunk?verbose=on">Novinky</a> &nbsp; '.
    302     $System->Config['Web']['WebCounter']);
    303  
    304     echo('</td></tr>');
    305     if($System->Config['Web']['ShowRuntimeInfo'] == true) echo('<tr><td colspan="3" style="text-align: center;">Doba generování: '.$ScriptGenerateDuration.' s / '.ini_get('max_execution_time').' s &nbsp;&nbsp; Použitá paměť: '.HumanSize(memory_get_peak_usage(FALSE)).' / '.ini_get('memory_limit').'B &nbsp;&nbsp; <a href="http://validator.w3.org/check?uri='.htmlentities('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?'.$_SERVER['QUERY_STRING']).'">HTML validator</a></td></tr>');
    306     echo('</table>'.
     291    $System->Config['Web']['WebCounter'];
     292 
     293    $Output .= '</td></tr>';
     294    if($System->Config['Web']['ShowRuntimeInfo'] == true)
     295      $Output .= '<tr><td colspan="3" style="text-align: center;">Doba generování: '.$ScriptGenerateDuration.' s / '.ini_get('max_execution_time').' s &nbsp;&nbsp; Použitá paměť: '.HumanSize(memory_get_peak_usage(FALSE)).' / '.ini_get('memory_limit').'B &nbsp;&nbsp; <a href="http://validator.w3.org/check?uri='.htmlentities('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?'.$_SERVER['QUERY_STRING']).'">HTML validator</a></td></tr>';
     296    $Output .= '</table>'.
    307297      '</body>'.
    308       '</html>');
     298      '</html>';
    309299    $User->Store();
    310   }
    311 }
     300    return($Output);
     301  } else return('');
     302}
     303
     304function ShowPage($Content)
     305{
     306  global $Config;
     307 
     308  $Output = ShowHeader().$Content.ShowFooter();
     309  //if($Config['Web']['FormatOutput']) $Output = FormatOutput($Output);
     310  echo($Output);
     311}
     312
     313$UnitNames = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB');
     314 
     315function HumanSize($Value)
     316{
     317  global $UnitNames;
     318
     319  $UnitIndex = 0;
     320  while($Value > 1024)
     321  {
     322    $Value = round($Value / 1024, 3);
     323    $UnitIndex++;
     324  }
     325  return($Value.' '.$UnitNames[$UnitIndex]);
     326}
     327
    312328
    313329function GetQueryStringArray($QueryString)
Note: See TracChangeset for help on using the changeset viewer.