Автор Тема: Предложение за портала  (Прочетена 15551 пъти)

kanadeca

  • Робо-Новак
  • *****
  • Публикации: 32
    • Профил
Предложение за портала
« -: Август 03, 2007, 11:20:36 am »
Предлагам към системата за качване да има и търсачка на файловете, за да бъде по-лесно намирането им като станат повече. Ето едно кодче и ако искаш може да го поставиш:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Search script</title>
</head>
<body>
<table>
<tr><td>
<form action="./search.php" method="get">
<b>Търсене:</b> <input type="text" name="s" class="field" size="65" value="<?php 
$s 
htmlspecialchars&#40;$_GET['s'&#93;, ENT_QUOTES&#41;; ///// http&#58;//bg2.php.net/manual/en/function.htmlspecialchars.php 
echo $s?>
">
<input type="submit" value="Търси" class="button">
</form>
<?php 
if &#40;$s !=null &#41;&#123; 
echo "</td></tr>"
&
#125; 
?>

<?php 
$sort 
htmlspecialchars&#40;$_GET['sort'&#93;, ENT_QUOTES&#41;; ///// http&#58;//bg2.php.net/manual/en/function.htmlspecialchars.php 
function size&#40;$path&#41;&#123; /////функция, за превръщане на байтове в по-големи единици 
$size filesize&#40;$path&#41;; 
if&#40;$size >= 1073741824&#41; 
&#123; 
$size round&#40;$size / 1073741824 * 100&#41; / 100; 
$size=substr&#40;$size,0 , 4&#41;; 
$size $size " GB"
&
#125; 
elseif&#40;$size >= 1048576&#41; 
&#123; 
$size round&#40;$size / 1048576 * 100&#41; / 100; 
$size=substr&#40;$size,0 , 4&#41;; 
$size $size " MB"
&
#125; 
elseif&#40;$size >= 1024&#41; 
&#123; 
$size round&#40;$size / 1024 * 100&#41; / 100; 
$size=substr&#40;$size,0 , 4&#41;; 
$size $size " KB"
&
#125; 
else 
&
#123; 
$size=substr&#40;$size,0 , 4&#41;; 
$size $size " B"
&
#125; 
echo $size
&
#125; 
function show&#40;$dir&#41;&#123; /////с тази функция обхождаме директорията и директориите в нея 
global $i///// правим $i глобална, за да важи нейната стойност и извън фукцията 
global $file///// правим $file глобална, за да важи нейната стойност и извън фукцията 
$s htmlspecialchars&#40;$_GET['s'&#93;, ENT_QUOTES&#41;; ///// http&#58;//bg2.php.net/manual/en/function.htmlspecialchars.php 
$directory opendir&#40;$dir&#41;; ///// отваряме зададената папка 
while &#40;$files = readdir&#40;$directory&#41;&#41; ///// изкарваме файловете от директорията 
&#123; 
if &#40;&#40;$files != ".."&#41; AND &#40;$files != "."&#41;&#41;&#123; ///// ако файла е .. или . &#40;т.е. предишната директория&#41; го пропускаме 
$path $dir.'/'.$files///// определяме пълния път до файла 
if &#40;!is_dir&#40;$path&#41;&#41;&#123; ///// ако файла не е директоктория продължаваме нататък 
if &#40;eregi&#40;$s, $files&#41;&#41; &#123; ///// ако във файла се съдържа ключовата дума която търсим продължаваме нататък 
$i++; ///// покачваме стойността на $i с 1 
$file[&#93;=array &#40; ////// http&#58;//bg2.php.net/manual/en/function.array.php 
"name" => $files///// придаваме стойност на name => $files -> името на файла 
"dir" => $dir///// придаваме стойност на dir => $dir -> директорията на файла 
"path" => $path ///// придаваме стойност на path => $path -> линка към файла 
&#41;; 
&#125; 
&#125; 
if&#40;is_dir&#40;$path&#41;&#41; &#123; ////// ако файла е директория продължаваме нанатък и отново следва функцията която преглежда папката 
show&#40;$path&#41;; ///// функцията за преглеждане на папката. Докато има папки, те ще се отварят и преглеждат за файлове съдържащи търсените от нас ключови думи 
&#125; 
&#125; 
&#125; 
&#125; 

if &#40;$s != null&#41;&#123; ///// ако заявката за търсене не е празна 
show &#40;"."&#41;; ///// задаваме от коя папка да започне търсенето на файлове 
$num count&#40;$file&#41;; ///// брой $file 
if &#40;$num != null&#41;&#123; ////// ако $num няма стойност, показва че няма намерени файлове 
$found="Намерени файлове&#58; ".$i
&
#125; else &#123; ///// ако $num има стойност, показва колко са намерените файлове 
$found="Няма намерени файлове"
&
#125; 
echo 
<tr> 
<td> 
<table width=\"100%\" align=\"left\" style=\"font-size&#58;12px;font-family&#58; Tahoma;\"> 
<tr> 
<td style=\"border&#58;1px solid #DBDBDB;\" colspan=\"3\"> 
<div style=\"padding&#58;1px; background-color&#58; #F2F2F2; white-space&#58;nowrap\">Резултати за&#58; "
.$s."</div> 
</td> 
</tr> 
<tr> 
<td style=\"border&#58;1px solid #DBDBDB;\" colspan=\"3\"> 
<div style=\"padding&#58;1px; background-color&#58; #F2F2F2; white-space&#58;nowrap\">"
.$found."</div> 
</td> 
</tr> 
</table> 
</td> 
</tr> 
<tr> 
<td> 
<table width=\"580px\" align=\"left\" style=\"font-size&#58;12px;font-family&#58; Tahoma;\"> 
<tr> 
<td style=\"border&#58;1px solid #DBDBDB;\" width=\"20px\" align=\"center\"> 
<div style=\"padding&#58;1px; background-color&#58; #F2F2F2; white-space&#58;nowrap;height&#58;15px;\"> 
</div> 
</td> 
<td style=\"border&#58;1px solid #DBDBDB;\" width=\"510px\" align=\"left\" colspan=\"2\"> 
<div style=\"padding&#58;1px; background-color&#58; #F2F2F2; white-space&#58;nowrap;height&#58;15px;\"> 
<a href=\"?s="
.$s.""
if &
#40;$page != null&#41;&#123; ///// ако $page има стойност, т.е. избрана е страница 
echo "&page=".$page.""
&
#125; 
echo "&sort=name\">Сортирай по име</a>"
if &
#40;$sort == "name"&#41;&#123; ///// ако вече е избрано да се сортират файловете по име се показва опция за премахване на сортирането 
echo " <a href=\"?s=".$s
if &
#40;$page != null&#41;&#123; ///// ако $page има стойност, т.е. избрана е страница 
echo "&page=".$page
&
#125; 
echo "\"><b>[X&#93;</b></a>"
&
#125; 
echo "</div> 
</td></tr>"

if &
#40;$num > "30"&#41;&#123; ///// ако намерените файлове са повече от 30 
$page_num=ceil&#40;$num/30&#41;; ///// определяне броя на страниците. ceil&#40;&#41; - закръгля към по-голямото число 
if &#40;$page != null&#41;&#123; ///// ако $page има стойност, т.е. избрана е страница 
$num_for=30*$page////// определя се до кой файл да се изреждат останалите 
$i_value=$num_for-30///// определя се от кой файл да започнат се изреждат останалите. т.е. от $i_value до $num_for 
$rows $num_for $num///// редовете за изреждане &#40;<tr>&#41;. Попринцип те са 30, но на последната страница се получават празни редове. За това е нужна тази променлива 
if &#40;$page == $page_num&#41;&#123; ///// ако избраната страница е равна на броя на страници, т.е. ако е последна 
$num_for=$num_for-$rows///// броя на редовете, които ще се изреждат на последната страница, за да не останат празни редове 
&#125; 
&#125; else &#123; ///// ако не е избрана страница се показват първите 30 файла 
$i_value="0"
$num_for="30"
&
#125; 
&#125; else &#123; ///// ако файловете са по-малко от 30 се показват всичките 
$i_value="0"
$num_for=$num
&
#125; 
for &#40;$i=$i_value;$i<$num_for;$i++&#41;&#123; ///// for loop 
if &#40;strlen&#40;$file[name&#93;&#41;>"75"&#41;&#123; ///// ако дължината на името е по-дълга от 75 символа 
$totchki='...'
&
#125; else &#123; ///// ако е по-малка от 75 символа 
$totchki=''
&
#125; 
$file[$i&#93;[name&#93;=substr&#40;$file[$i&#93;[name&#93;,0 , "75"&#41;; ///// махат се всички символи след 75тия 
if &#40;$sort == "name"&#41;&#123; ///// ако е избрано да се сортират файловете по име 
sort&#40;$file&#41;; ///// http&#58;//bg2.php.net/manual/en/function.sort.php 
&#125; 
//////////////// ИЗРЕЖДАНЕ НА ФАЙЛОВЕТЕ В ОТДЕЛНИ РЕДОВЕ - START //////////////// 
echo "<tr> 
<td style=\"border&#58;1px solid #DBDBDB;\" width=\"20px\" align=\"center\"> 
<div style=\"padding&#58;1px; background-color&#58; #F2F2F2; white-space&#58;nowrap;height&#58;15px;\"> 
<a href=\""
.$file[$i&#93;[dir&#93;."\" onClick=\"this.target='_blank'\"> 
<img src=\"folder.png\" height=\"15px\" width=\"15px\"></a> 
</div> 
</td> 
<td style=\"border&#58;1px solid #DBDBDB;\" width=\"510px\" align=\"left\"> 
<div style=\"padding&#58;1px; background-color&#58; #F2F2F2; white-space&#58;nowrap;height&#58;15px;\" onmouseover=\"this.style.backgroundColor='#F9F9F9'\" onmouseout=\"this.style.backgroundColor='#F2F2F2'\"> 
<a href=\""
.$file[$i&#93;[path&#93;."\">".$file[$i&#93;[name&#93;.$totchki."</a> 
</div
</
td
<
td style=\"border&#58;1px solid #DBDBDB;\" width=\"50px\" align=\"center\"> 
<div style=\"padding&#58;1px; background-color&#58; #F2F2F2; white-space&#58;nowrap; color&#58; #0078cc;height&#58;15px;\">"

size&#40;$file[$i&#93;[path&#93;&#41;; 
echo "</div></td></tr>"."\n"
//////////////// ИЗРЕЖДАНЕ НА ФАЙЛОВЕТЕ В ОТДЕЛНИ РЕДОВЕ - END //////////////// 
&#125; 
if &#40;$num > "30"&#41;&#123; ///// ако броя на файловете е почю-голям от 30 
$page_num=ceil&#40;$num/30&#41;; ///// определя се броя на страниците 
//////////////// ИЗРЕЖДАНЕ НА ЛИНКОВЕ КЪМ РАЗЛИЧНИТЕ СТРАНИЦИ - START //////////////// 
echo "<tr><td colspan=\"3\" style=\"border&#58;1px solid #DBDBDB;white-space&#58;nowrap;font-size&#58;13px;font-family&#58; Tahoma;\">"

for&
#40;$a=1;$a<=$page_num;$a++&#41;&#123; ///// for loop 
if &#40;$a==$page&#41;&#123; ///// ако в момента разглеждате дадената страница, тя не излиза като линк 
echo " <b>".$a."</b> |"
&
#125; else &#123; ///// изреждат се линковете към различните страници 
echo " <a href=\"?s=".$s."&page=".$a
if &
#40;$sort == "name"&#41;&#123; 
echo "&sort=name"
&
#125; 
echo "\">".$a."</a> |"
&
#125; 
&#125; 
echo "</td></tr>"
&
#125; 
//////////////// ИЗРЕЖДАНЕ НА ЛИНКОВЕ КЪМ РАЗЛИЧНИТЕ СТРАНИЦИ - END //////////////// 
echo "</table>"
&
#125; 
?>

</td></tr></table>
</body>
</html>

zipopro

  • Зомбиран Роботостроител
  • *****
  • Публикации: 178
    • Профил
    • http://ziporpo.org/
Предложение за портала
« Отговор #1 -: Август 03, 2007, 11:27:24 am »
ХАХ.......... А бе пич!!! Тая търсачка трябва да е до формата за качване! Второ трябва да има и Странициране! И трето няма трето  :lol:
Лъчезар Петров Лечев - Стара Загора - 14 години