Просмотр файла guestbook.php

Размер файла: 6.17Kb
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
/***************************************************************************
 *                     guestbook.php  (S-A WAP)
 *                            -------------------
 *      Разработка: Антон Федорченко.
 *      Оптимизация под WAP: Felis.
 *          2008 год
 ***************************************************************************/
?>
<?
  session_start();

  require_once('functions.php');
  require_once('config.php');
  require_once("lang/{$Lng}_lng.php");
  require_once('filename.php');
  require_once ('templates/header.php');
  $Mess = $_SESSION['msg_added'];
  if($Antiflood != 'yes')
    session_unregister('msg_added');
?>
<?php
  //Определяем страницу
  if(empty($_GET['currpage']))
    $CurrPage=1; else $CurrPage=$_GET['currpage'];
  $MessagesArray=@file($File);
  // Если в книге нет ни одного сообщения - выводим соответствующий текст
  if((count($MessagesArray)<4) or (!file_exists($File)))
  {
    include('menu.php');
  } else
  {
  	//Обрезаем заголовок xml и корневой элемент guestbook
	  $MessagesArray=array_slice($MessagesArray, 2);
	  array_pop($MessagesArray);
	  $MessagesArray=array_chunk($MessagesArray, 9);
	  $CountMessages=count($MessagesArray);
	  $Tags=array('name', 'date', 'city', 'email', 'url', 'messagebody', 'admin');//массив, содержащий атрибуты сообщения
	  //Определяем начальное и конечное сообщения (нумерация с 0), которые должны появиться на странице
	  if($CurrPage==1)
	    $Begin=0; else
	    $Begin=($CurrPage-1)*$MessagesPerPage;
	  $End=$MessagesPerPage*$CurrPage-1;
	  //Из массива MessagesArray формируем 2-х мерный массив Messages, содержащий выбранные сообщения
	  //1 измерение - номер сообщения (начинается с 0)
	  //2 измерение - набор атрибутов сообщения: перечислены выше в массиве $Tags
	  for($i = $Begin; $i <= $End; $i++)
	  {
	    if($i > ($CountMessages-1))
	      break;
	    //Убираем теги <message> и </message>
	    $MessagesArray[$i]=array_slice($MessagesArray[$i], 1);
	    array_pop($MessagesArray[$i]);
	    //Формируем набор атрибутов сообщения
	    for($inx=0; $inx<7; $inx++)
	    {
	      $Str=$MessagesArray[$i][$inx];
	      $Str=ereg_replace('<[/a-z]+>', '', $Str);
	      $Str=trim($Str);
	      if($Str=='%nbsp%') $Str='';
	      $Attribute=$Tags[$inx];
	      $Messages[$i][$Attribute]=$Str;
	    }

	  } // for($i=$Begin; $i<=$End; $i++)
	?>
	  <!--Заголовок + блок со ссылками-->
	  <? # include('menu.php'); ?>
	  <!--Сообщения-->
	  <?
	  if(!empty($Mess))
      print $Mess;
	  foreach($Messages as $key => $Attributes)
	  {
	    //Показываем смайлики
	    if($ShowSmiles == 'yes')
	    {
	      $Attributes['messagebody'] = ConvertToSmile($Attributes['messagebody']);
	      $Attributes['admin'] = ConvertToSmile($Attributes['admin']);
	    } else
	    {
	      $Attributes['messagebody'] = ConvertSmilesToSpaces($Attributes['messagebody']);
	      $Attributes['admin'] = ConvertSmilesToSpaces($Attributes['admin']);
	    }

	    $Attributes['messagebody']=str_replace("+endln+", "<br>", $Attributes['messagebody']);
	        $Attributes['admin']=str_replace("+endln+", "<br>", $Attributes['admin']);
	        if ($Attributes['city'] != '')
	      $Attributes['city']='('.$Attributes['city'].')';
	    Print "<center>";
		Print "<div class=onquote>[<a href='mailto:{$Attributes['email']}'>@</a>] <a href={$Attributes['url']}><b>{$Attributes['name']}</b></a> {$Attributes['city']}<br>{$Cpt_Date} {$Attributes['date']}</div>";
     //автор, дата
     Print "<div class=quote>{$Attributes['messagebody']}<br>";
	      if($Attributes['admin'] != '')
	    {
	      $Attributes['admin']=ConvertIntoTags($Attributes['admin']);
	      Print "<div class=header><b>{$Cpt_Admin}</b>{$Attributes['admin']}</div>";
	    }
	Print "</div>";
     //e-mail, url
     # Print "<br>";
	    $Attributes['messagebody']=ConvertIntoTags($Attributes['messagebody']);
     //комментарий администратора
	    Print '<br>';
		Print "</center>";

	  }

    //<!--Постраничная навигация-->
	  //определяем количество страниц
	  $PagesCount=ceil($CountMessages/$MessagesPerPage);
    $PreviousPage=$CurrPage - 1;
	  $NextPage=$CurrPage + 1;
    $Offset = $CurrPage - 8;
    if($Offset < 0) $Offset = 0;
    for($i = 1; $i <= 10; $i++)
    {
      $Tmp = $i + $Offset;
      $GbPages[] = $Tmp;
      if($Tmp == $PagesCount)
        break;
    }
    Print "<table align=center border=0 cellspacing=0 cellpadding=0 border=0 class='GbNav'>";
	  Print "<tr>";
	  if($PreviousPage > 0)
    {
      Print "<td align='right' width='20'><a href='guestbook.php?currpage=1'><b>&lt;&lt;</b></a>&nbsp;</td>";
      Print "<td align='right' width='15'><a href='guestbook.php?currpage={$PreviousPage}'><<Пред.</a></td>";
      print "<td width='5'>&nbsp;</td>";
    } else
      Print "<td width='40'>&nbsp</td>";
	  Print "<td align='center'>";
    $Count = count($GbPages);
    for($i = 0; $i<=$Count; $i++)
	  {
	    if($GbPages[$i]==$CurrPage)
	      Print("<span class='mustred'>".$GbPages[$i].' </span>'); else
	      Print "<a href='guestbook.php?currpage={$GbPages[$i]}'>{$GbPages[$i]}</a> ";
	  }
	  Print "</td>";
	  if($NextPage <= $PagesCount)
    {
      print "<td width='5'>&nbsp;</td>";
      print "<td align='left' width='15'><a href='guestbook.php?currpage={$NextPage}'>След.>></a></td>";
      print "<td align='left' width='20'>&nbsp;<a href='guestbook.php?currpage={$PagesCount}'><b>&gt;&gt;</b></a></td>";
    }  else
      Print "<td width='40'>&nbsp</td>";
	  Print "</tr>";
	  Print "</table><br>";
  }
  require_once ('templates/footer.php');
  ?>