View file index.php

File size: 6.48Kb
<?php
  ///////////////////////////////////////////////////
  // Русский
  // web-музей/фотогалерея Venite spectatum (txt)
  // 2005 (C) Федорченко А.А. ([email protected])
  // Franзais
  // musee-web/photogalerie Venite spectatum
  // 2005 (C) Fedortchenko A.A. ([email protected])
  ///////////////////////////////////////////////////
?>
<?php

  //http заголовки - подавление кэша
  header("Expires: Mon, 23 May 1995 02:00:00 GMT");
  header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
  header("Cache-Control: no-cache, must-revalidate");
  header("Pragma: no-cache");
  session_start();

  //
  include("functions.inc");
  //выбираем страницу
  $Page = $_POST['page'];
  if($Page == '')
    $Page = $_GET['page'];
  if($Page == '')
    $Page = 'categories';
//относительный путь
  $GetPath  = $_GET['path'];
  $Path     = str_replace("x", "/", $GetPath);
  //print $Path.'<br>';
//абсолютный путь
  //print $_SERVER['PHP_SELF'];
  $AbsPath = str_replace('/index.php', '', $_SERVER['PHP_SELF']);
  if($AbsPath != '')
    $AbsPath .= '/';

  $AbsPath = $Down.'cat';
  $AbsPath .= "{$Path}";
//предыдущий каталог
  if(strlen($Path) != 3)
    $PrevPath = substr($GetPath, 0, strlen($Path)-3);
//счетчик посещений категории
  $CatCounter = $_SESSION['CatCounter'];
  $CatCounter = unserialize($CatCounter);
  //if(empty($CatCounter)) $CatCounter[] = $Path;
  if(!@in_array($Path, $CatCounter))
  {
    $CatCounter[] = $Path;
    $Count = LoadFromFile("{$AbsPath}/counter.txt");
    $Count++;
    SaveStringInFile("{$AbsPath}/counter.txt", $Count, 'w');
  }
  $CatCounter = serialize($CatCounter);
  session_register('CatCounter');
  //переменные
  $Name = LoadFromFile($AbsPath."/name.txt");
  $UpAnchor = "<div align=center><a href='index.php?path={$PrevPath}'><span class=mustred>Наверх</span></a></div>";
?>

<html>
<head>
  <title>Venite spectatum - <? echo $Name ?></title>
  <link rel='stylesheet' href='museum.css'>
  <?
    $KeyWords = LoadFromFile($AbsPath.'/meta_keywords.txt');
    $Descr = LoadFromFile($AbsPath.'/meta_descr.txt');
    print "<META HTTP-EQUIV='Content-Type' CONTENT='text/html; CHARSET=Windows-1251'>";
    print "<META NAME='keywords' CONTENT='{$KeyWords}'>";
    print "<META NAME='description' CONTENT='{$Descr}'>";
  ?>
</head>
<body  bgcolor=#D5DCDF>

<?
//подкатегории
  //страница для постраничной навигации
  $Part = $_GET['part'];  if(empty($Part)) $Part = 1;
  //составляем список каталогов с подкатегориями
  $dr = opendir($AbsPath);
  $TextCount = 0;
  while($dir = readdir($dr))
  {
    if((ereg("[0-9]+", $dir) == true) and (strpos($dir, 'text') === false))
      $Arr[] = $dir;
    elseif(strpos($dir, 'text') !== false)
      $TextCount++;
  }
  closedir($dr);
  if(!empty($Arr))
    sort($Arr);
  //получаем подкатегории: служебная директория, название, статус (многомерный массив $Categories)
  $ShowStatus[] = '';
  $inx = 0;
  for($i = 0; $i < count($Arr); $i++)
  {
    $CatDir = $Arr[$i];
    $Categories[$inx]['dir'] = $CatDir;
    $File = $AbsPath.'/'.$CatDir.'/name.txt';
    $CatName = LoadFromFile($File);
    $Categories[$inx]['name'] = $CatName;
    $Visibility = LoadFromFile($AbsPath.'/'.$CatDir.'/conf.txt');
    $Categories[$inx]['visib'] = $Visibility;
    $Descr = LoadFromFile($AbsPath.'/'.$CatDir.'/descr.txt');
    if(!empty($Descr))
      $Descr = " - ".$Descr;
    $Categories[$inx]['descr'] = '<i>'.$Descr.'</i>';
    //$Categories[$inx]['counter'] = LoadFromFile($AbsPath.'/'.$CatDir.'/counter.txt');
    $inx++;
    //статус: показывать/не показывать
  }

//заголовок активной категории

  print "<h2>{$Name}</h2>";
  if(!empty($Path))
    print $UpAnchor;

//Базовая нумерация
  if(!empty($Path))
  {
    $Num = str_replace('0', '',  $Path);
    $Num = str_replace('/', '.', $Num);
    $Num = substr($Num, 1, strlen($Num));
    $Num.= ".";
  }

//выводим подкатегории
  if(!empty($Categories))
  {
    $Count = count($Categories);
    $inx = 1;

    print "<table border=0 cellspacing=0 cellpadding=0 width=70% class=CatList>";
    for($i = 0; $i < $Count; $i++)
    {
      $TmpPath = "{$GetPath}x{$Categories[$i]['dir']}";
      if($Categories[$i]['visib'] != 0)
      {
        print "<tr>";
	        print "<td width=5 class=PaddingR valign=top>$Num{$inx}</td>";
	        print "<td><a href=index.php?path={$TmpPath} class=CatItem>{$Categories[$i]['name']}</a>{$Categories[$i]['descr']}</td>";
	      print "</tr>";
        $inx++;
      }
    }
    print "</table>";
  }

  //Выбираем изображения
  $ImgDir = $AbsPath.'/img';
  $dr = opendir($ImgDir);
  $inx=0;
  while($file = readdir($dr))
  {
    if(strpos($file, 'min_') !== false)
    {
      $ImgBrief = substr($file, 4, (strlen($file)-4));
      $Images[$inx]['brief'] = trim($ImgBrief);
      $Images[$inx]['min'] = $ImgDir.'/'.$file;
      $MaxImg = $ImgDir.'/max_'.$ImgBrief;
     // print $MaxImg.'<br>';
      if(file_exists($MaxImg))
        $Images[$inx]['max'] = trim($MaxImg);
      $inx++;
    }
  }
  closedir($dr);
  //var_dump($Images);
//Подготавливаем текст
  $Dir = GetVSDir($_SERVER['PHP_SELF']);
  $Text = LoadFromFile($AbsPath."/text{$Part}.txt");
  $ToReplace = "<table align=center class=OrdTableWithPadding cellspacing=0 cellpadding=0 border=1><tr>";
  $Text = str_replace('[IMAGES]', $ToReplace, $Text);
  $Text = str_replace('[/IMAGES]', '</tr></table>', $Text);
  $Text = ConvertBBCode($Text);
  $Count = count($Images);
  for($i = 0; $i < $Count; $i++)
  {
    $Brief = $Images[$i]['brief'];
    $Min   = $Images[$i]['min'];
    $Max   = $Images[$i]['max'];
    //print "$Brief - $Min - $Max<br>";
    if(empty($Max))
      $Text = str_replace("[IMG]{$Brief}", "<td class='ImageBox'><img src='{$Min}' border=0><br>", $Text);
    else
      $Text = str_replace("[IMG]{$Brief}", "<td class='ImageBox'><a href='http://${SERVER_NAME}{$Dir}/show_image.php?img={$Max}&place=users' target=_blank><img src='{$Min}' border=0></a><br>", $Text);
    //картинка-ссылка на другой сайт
    $Text = str_replace("[/URL]{$Brief}", "' target=_blank><img src='{$Min}' border=0></a><br>", $Text);
  }
  $Text = str_replace("[IMGREF][URL]", "<td class='ImageBox'><a href='", $Text);
  $Text = str_replace('[/IMGREF]', "</td>", $Text);
  $Text = str_replace('[/IMG]', "</td>", $Text);
//Постраничная навигация
  $Navig = create_navig ($Part, $TextCount);
  print "<br>";
  if(!empty($Navig))
  {
    print $Navig;
    print "<br>";
  }
  print $Text;
  print "<br>";
  print $Navig;
    ?>