View file wapphoto/index.php

File size: 6.15Kb
<?
//------------------------------< parameters programm >---------------------------------
include "unicode.lib.php";
include "time.php";
$start = gettime();
# оформление
#$fon="#CCCCFF"; //цвет фона
#$text="#666699"; //текста
#$link="#0066FF"; //ссылок
# сколько показывать на WML странице файлов:
$index_per_page = 4;
$title=utf_encode(Фотогаллерея); //

$allowed_file = "type_file.dat";    // имя файла, содержащего типы файлов разрешенных для вывода


# показывать индекс впереди файла:
#$index_flag = false;        // false - нет
$index_flag = true;          // true - да


# показывать на WML странице расширение файла:
#$existion_flag = false;     // false - нет
$existion_flag = true;       // true - да


# показывать на WML странице размер файла:
#$size_flag = false;          // false - нет
$size_flag = true;            // true - да


# немного кода
$curren_dir = getcwd ();
$lenghth = strlen ($curren_dir);
for ( $i = $lenghth; $i>0; $i--) {  if ( $curren_dir [$i] === "/" or $curren_dir [$i] === "\\" ) { $curren_dir_title = substr ( $curren_dir, $i+1, $lenghth);  break; }
} # end for


//-----------------------------------  заголовок WML страницы  -----------------------------------
$header = <<<DATA
	<?xml version="1.0"?>
	<!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.3//EN" "http://www.phone.com/dtd/wml13.dtd">
		<wml>
			<card id="Menu" title="$curren_dir_title"><p align="center"><b><i>$title</i></b><br/>==========<br/>
DATA;
//----------  end  --------------//
//-----------------------------------  Пользовательские ссылки  -----------------------------------
$userlinks = <<<DATA
<br/><a href="/">&#x043D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a><br/><small>

DATA;
//----------  end  --------------//

//-----------------------------------  окончание WML страницы  -----------------------------------
$footer = <<<DATA
</small></p></card></wml>

DATA;
//----------  end  --------------//

$navigation_bar_both = <<<DATA
<a href="index.php?action=back">&lt;&lt;-</a>&nbsp;<a href="/photo/">&#x043D;&#x0430;&#x0447;&#x0430;&#x043B;&#x043E;</a>&nbsp;<a href="index.php?action=forward">+&gt;&gt;</a>
DATA;

$navigation_bar_back = <<<DATA
<a href="index.php?action=back">&lt;&lt;-</a>&nbsp;<a href="/photo/">&#x043D;&#x0430;&#x0447;&#x0430;&#x043B;&#x043E;</a>
DATA;

$navigation_bar_forward = <<<DATA
<a href="/wapphoto/">&#x043D;&#x0430;&#x0447;&#x0430;&#x043B;&#x043E;</a>&nbsp;<a href="index.php?action=forward">+&gt;&gt;</a>
DATA;

//--------------------------------< programm code >--------------------------------------


# устанавливаем сессию
session_name ("wapsid");
session_start();

if ( !(trim ($HTTP_GET_VARS['action']) == "dir") )
  { # папка не изменилась, используем сохранненый page index

    # было ли действие "forward" метод POST
    if ( trim ($HTTP_GET_VARS['action']) == "forward" )
      { $HTTP_SESSION_VARS["index_page"]++; }

    # было ли действие "back" метод POST
    if ( trim ($HTTP_GET_VARS['action']) == "back" )
      { $HTTP_SESSION_VARS["index_page"]--; }

    if ( trim ($HTTP_GET_VARS['action']) == "" )
      { require "count.php"; }		// подключаем счетчик посещений
  }
else
  { # папка изменилась, первый вход
    #регистрируем default page index в сессии
	session_register("index_page");
	$HTTP_SESSION_VARS["index_page"] = 0;
  }

# инициализация переменных
$body = "";
$body_line = "";
$i = 1;
$dir = opendir ($curren_dir);


# функция определяет разрешен ли тип файла к показу или нет
function allowed_type ($d)
  {
   # разделяем имя и расширение файла 'name' . 'existion'
   $lenghth = strlen ($d);
   for ( $i=$lenghth; $i>0; $i--)
     {
      if ( $d [$i] == '.' )
        {
         global $name;
         $name = substr ( $d, 0, $i);
         $existion = strtolower( substr ( $d, $i+1, $lenghth) );
         break;
        }
  } # end for

	global $allowed_file;
	$fallowed = fopen ( "$allowed_file", "r");
	while (!feof ($fallowed) )     # удаляем пустые строки и комментарии
	  {
	    $type = fgets ($fallowed, 1024);
	    if ( !(trim (strip_tags($type) ) == "") )
	      {	if ( trim($type) === $existion ) {return true; break;};	}
	  }
	return false;
}

# начинаем читать каталог
while ( ($d = readdir ($dir)) !== false)
  {
	if ( is_dir ( $d ) and !($d == ".") and !($d == ".."))
	  {
		$body_line = <<<DATA
				<p align="left"><small>[DIR]...<a href="$d/index.php?action=dir">$d</a></small></p>
DATA;
		$body = $body.$body_line;
	  }
	  
	  $flag_allowed = !($d == ".htaccess") and !($d == "index.php") and !($d == $allowed_file);
	if ( is_file ( $d ) and $flag_allowed and allowed_type($d))
	  {
	  # узнаем параметры файла
		$LIST_FILE = stat ($d);
		$file_size = $LIST_FILE [7];		# размер фала
		$file_change_time = $LIST_FILE [9];	# время последнего изменения файла
		
		# вычисляем плавающий размер файла
		if ($file_size < 1024) $file_size = $file_size."b";
		if ($file_size >= 1024) $file_size = round (($file_size/1024), 1)."Kb";
		if ($file_size >= 1024) $file_size = round (($file_size/1024), 1)."Mb";
		
		if ($index_flag) $index = $i.".&nbsp;";
		else $index = "";
		
		if ($existion_flag) $filename = $d;
		else $filename = $name;
		
		if (!$size_flag) $file_size = "";
		$opis= utf_encode(@implode("",@file("$filename.txt"))); 

		$body_line = <<<DATA
<img src="resize.php?f=$filename" alt=""/><br/><b><i>$index</i></b><a href="$d">$filename</a>&nbsp;($file_size)<br/><small>$opis</small><br/>------<br/>
DATA;

		if ( ( $index_per_page*$HTTP_SESSION_VARS["index_page"] <= $i-1 ) and ( $i <= $index_per_page + ($index_per_page)*$HTTP_SESSION_VARS["index_page"] ) )
		  { $body = $body.$body_line; }

		$i++;
	  }
  }


#проверка бара навигации на возможность переходов
$navigation_bar = $navigation_bar_both;
if ( $HTTP_SESSION_VARS["index_page"] <= 0 )	{ $navigation_bar = $navigation_bar_forward;}
if ( $HTTP_SESSION_VARS["index_page"] >= floor($i/$index_per_page) )	{ $navigation_bar = $navigation_bar_back;}


# выводим страницу
	header ("Content-type: text/vnd.wap.wml");
$end = gettime();
	echo ($header.$body.$navigation_bar.$userlinks.round(($end - $start), 5).$footer);
?>