GGC

Neuigkeiten
Hauptseite
Links
English flag SourceForge Forum
English flag SourceForge Downloads
English flag Javadoc Dokumentation
Über dieses Projekt
English flag English version

Legales
Webseitenquellcode

SourceForge.net Logo


Sollten auf den oben genannten Seiten Probleme auftreten, wenden Sie sich bitte an den Sitemaster.

Best viewed with any browser

<?php
/*
MODIFICATIONS:
  +2006-02-19: RR started modifications, extended script to be able to display the
                  *whole* source-tree, squashed a bug where this script could be used
                  for spying; commenting, code-cleanup
  +2006-02-24: RR cleanup of generated code
  +2006-03-11: RR three more pregs to prevent spying in pma, newsticker and db.inc
  +2006-04-05: RR comments
*/

// This recursive function parses all directories from a given directory $dir
// USAGE:
//   +$prefix should generally be empty on first call. If it isn't, I assume it's
//    last character is a '/'
function parsedirs ($dir$prefix)
{
$currdir opendir ("$prefix$dir");
  while (
$entry readdir ($currdir))
  {
    
// If we found a directory, recurse into it, writing the path with a suffixed
    // colon and opening up a new <ul>.
    
if (is_dir ("$prefix$dir/$entry") && !($entry == '..' || $entry == '.' ||
        
$entry == 'pma' || $entry == 'newsticker' || $entry == 'scripts' ||
        
$entry == 'img' || $entry == 'styles' || $entry == 'quanta' ||
        
$entry == 'javadocs' || $entry == '.svn' ))
    {
      echo 
"<li>$entry/:\n".'  <ul>'."\n";
      
parsedirs ($entry"$prefix$dir/");
      echo 
'  </ul>'."\n".'</li>'."\n";
    }
    
// If this entry isn't a directory and the files contain .php or .inc, output a
    // link to them and a little description.
    
elseif ((stristr ($entry,'.php') || stristr ($entry,'.inc')) &&
        !
stristr ($entry'db.inc'))
      echo 
'    <li><a href="index.php?right=source&amp;show='."$prefix$dir/$entry".
          
'">F&uuml;r den Quellcode von <q>'."$entry".
          
'</q> hier klicken</a></li>'."\n";
  }
closedir ($currdir);
}

// Check if we should disply code. If we shouldn't, output a relatively extensive
// description of the site's structure. If we should, make sure that nobody is trying
// to spy any little secrets we might have on disk and the specified file actually
// exists.
if ($_GET['show'] != '')
  if (
$_GET['show'][0] == '/'
      
// My first preg ever. Gee, am I proud to produce such a senseless sequence of
      // dots and slashes. What this actually does is check if a zero times or more
      // often repeated substring ./ enclosed by ../ exists.
      
|| preg_match ('/\.\.\/(\.\/)*\.\.\//'$_GET['show'])
      || 
preg_match ('/\/pma\//'$_GET['show'])
      || 
preg_match ('/\/newsticker\//'$_GET['show'])
      )
    echo 
'NO WAY! No spying through this script!!!';
  elseif (!
file_exists ($_GET['show'])
      || 
preg_match ('/\/db.inc/'$_GET['show'])
      )
    echo 
'ERROR: specified file does not exist!';
  else
    
show_source ($_GET['show']);
else
{
?>
<p xml:lang="de">
  Ich benutze ein sehr leichtgewichtiges, hausgemachtes, CMS-&Auml;hnliches Konstrukt um
  den Inhalt dieser Seiten zu anzuzeigen. Es hat eine index.php in der obersten
  Verzeichnisbaumebene (<a href="../index.php">bediary.sourceforge.net</a>), die den
  Browser nur an die englische oder deutsche Version weiterleitet (und ein paar
  weitere nebens&auml;chliche Dinge erledigt).
</p>
<p xml:lang="de">
  <a href="index.php?right=source&amp;show=../index.php">F&uuml;r den Quellcode der
  obersten index.php hier klicken.</a>
</p>
<p xml:lang="de">
  Die individuellen Versionen sind bis auf den sprachspezifischen Teil &auml;quivalent,
  da ich aber den Inhalt dieser Site auch ohne aktive Internetverbindung &auml;ndern
  k&ouml;nnen muss, befinden sie sich nicht in einer Datenbank (was viel effizienter
  w&auml;re). F&uuml;r jede Version gibt es eine individuelle index.php mit &auml;hnlicher Struktur.
</p>
<p xml:lang="de">
  <a href="index.php?right=source&amp;show=index.php">F&uuml;r den Quellcode der deutschen
  index.php hier klicken.</a>
</p>
<p xml:lang="de">
  Diese index.php erledigt das meiste content managing. Sie l&auml;dt die
  <a href="contents.php">contents.php</a>, die ein statisches Inhaltsverzeichnis
  enth&auml;lt (auch das h&auml;tte mit einer Datenbank effizienter gestaltet werden k&ouml;nnen).
</p>
<p xml:lang="de">
  <a href="index.php?right=source&amp;show=contents.php">F&uuml;r den Quellcode der
  contents.php hier klicken.</a>
</p>
<p xml:lang="de">
  Danach l&auml;dt sie die aktuell ausgew&auml;hlte Seite (siehe unten: eine Liste aller Seiten)
  oder eine Standardseite. Zum Schluss zeigt sie den Benutzerz&auml;hler an.
</p>
<ul xml:lang="de">
<?php
parsedirs 
('..''');
?>
</ul>
<?php
}
?>

Besucherzähler: 11061