Перейти к содержимому

Render_

Маглы
  • Публикации

    37
  • Зарегистрирован

  • Посещение

Все публикации пользователя Render_

  1. Render_

    Возможности

    Народ подскажите, в какой версии СТГ правильно работают тарифы с абон-платой, с включенными мегабайтами ?
  2. Render_

    Разработка модуля MySQL

    Спасибо за модуль mysql всем его разработчикам! Он заточен для работы на FreeBSD ? Чтобы mod_store_mysql.so собрался на linux надо в projects/stargazer/plugins/store_mysql/files/Makefile , в строчке 15 прописать путь до хедера: SEARCH_DIRS = -I $(DIR_INCLUDE) -I /usr/include/mysql И еще маленький вопрос.. Как я понимаю модуль тестировался с mysql4, у меня же версия 5.0.26 и все работает, но вот очень тормазно. Когда подключаюсь конфигуратором подключение идет 5-7 секунд (получается информация об одном пользователе). После вызова ИНСТРУМЕНТЫ -> СТАТИСТИКА прохоидт 2-3 секунды. Раньше при file_store все открывалось моментально. В чем может быть причина ?
  3. Render_

    Сервис паки для стг

    где взять этот патч ? или может я что-то пропустил.
  4. Где можно найти документацию к этому модулю ?
  5. Render_

    Аукцион

    http://www.opennet.ru/opennews/art.shtml?num=10109
  6. Render_

    Установка Stargazer-а в Gentoo 2005

    2 vfz, expat собирал из emerge ? Если нет то попробуй так собрать и после чего env-update && source /etc/profile и заного пытайся скомпилировать stg.
  7. Render_

    Подсчет трафика СТГ

    Где ты в конфиге нашел, чтобы можно было указывать интерфейс на котором считать ? автоматизируй перезапуск биллинга при запуске системы =)
  8. Render_

    Модуль карточек

    ./stg_code_gen.php Fatal error: Cannot redeclare str_split() in /var/stargazer/cm/utils/stg_code_gen.php on line 74 где копать ?
  9. Это можно безболезнено закомментировать, я привел лишь пример скрипта. Т.е. если есть двига со стилями, то ей можно просто ссылаться на этот файл.
  10. Поднял ВПН на линуксе (pptpd + pppd). Авторизируешься по ВПН, получаешь адрес из другой подсети. Этот адрес записан в stg и стоит всегда онлайн. Пользователю летит инет, но траф не считается. Тестил на Gentoo-2.6.11 stg - 2.4.86 и stg 2.401.9.7. Даже если stargazer научится считать с туннелей, то что мешает пользователю прописать ИП из этой подсети и получать инет без авторизации по ВПН ? Может я чего не понял, обьясните.
  11. PHP cкрипт для организации Веб архива. (можно поставить на машину и давать ссылки FTP или NetBios) <?php $trashcan = "wfbtrash"; // Trash can (must be located in base directory) $trashcaninfofileext = "wfbinfo"; // Extension of information file in trash can $filealiases = true; // File aliasing feature $filealiasext = "wfbalias"; // File alias extension $defaultsortby = "name"; // Default sort mode (name/size/date) $hidedotfiles = true; // Hide dot-files (obsolete : use $hidefilepattern instead) $hidefilepattern = "^(CVS|\..*)$"; // All files matching that pattern will be hidden $showunixattrs = false; // Show perms / owner / group (UNIX) $filemode = 0664; // Create mode for files (UNIX) $dirmode = 0775; // Create mode for directories (UNIX) $uploadmaxsize = 2097152; // Max file size for uploads (check your php.ini) $readmefile = "wfbreadme.html"; // README file name (empty means no README file) $showreadmefile = false; // Allows README file to be in file list $useimages = false; // Use images, set to false by default to respect the philosophy $imagesdir = "wfbimages"; // Images directory (must be located in base directory) $showimagesdir = false; // Show images directory $trashcanimage = "trashcan.gif"; // Image for trash can $upperdirimage = "upperdir.gif"; // Image for upper and main directory $opendirimage = "opendir.gif"; // Image for open directory $dirimage = "dir.gif"; // Image for simple directory $fileimage = "file.gif"; // Image for file directory $editimage = "edit.gif"; // Image for edit action $viewimage = "view.gif"; // Image for view action $searchmaxlevels = 10; // Search levels (max depth in sub directories for searches, 0 means no limits) $editcols = 80; // Number of columns for edit area $editrows = 24; // Number of rows for edit area $defaultfileformat = "dos"; // Default file format when editing and saving (dos/unix) $viewextensions = array( // Viewable extensions (empty array means every file is viewable) "txt", "php", "php3", "jsp", "asp", "htm", "html", "shtml", "xml", "wml", "js", "css", "cgi" ); $authmethod = "none"; // Do not require user authentication $noauthprofile = "readonly"; // Default profile used when $authmethod = "none" $allowunknownusers = false; // If set to false, any server authenticated but locally unknown user // gets the unknown-user profile (see bellow) $unknownuserprofile = "readonly"; // Profile used for locally unknown users // ---- PROFILES ---- // You can create as many profiles as you need using these samples $profile = array( "readonly" => array( "allowmove" => false, // Allows file and directory moving "allowrename" => false, // Allows file and directory renaming "allowalias" => false, // Allows file aliasing "allowcopy" => false, // Allows file copying "allowdelete" => false, // Allows file deletion "allowremovedir" => false, // Allows directory deletion "allowcreatefile" => false, // Allows file creation "allowcreatedir" => false, // Allows directory creation "allowupload" => false, // Allows file uploads "allowurlupload" => false, // Allows file uploads from URL "allowbrowsetrashcan" => false, // Allows browsing of trash can "allowemptytrashcan" => false, // Allows emptying of trash can "allowrestorefromtrashcan" => false, // Allows restore files from trash can "allowdownload" => true, // Allows file download "allowedit" => false, // Allows file edition "allowshow" => true, // Allows file viewing (useful only if allowedit is false) "allowsearch" => true, // Allows searches "allowregexpsearch" => true // Allows optional use of regular expressions in searches )); $basedir = "/home/ftp"; // Base directory = custom directory (WINDOWS) $filelinks = true; // Links on files (inhibited with a custom $basedir // unless you specify $basevirtualdir), works fine // when $basedir = local directory $dateformat = "d-m-Y"; // Date format. Here are some other examples (that you can combine) : // "M D, Y" = Dec Fri, 2002 // "m/d/y" = 12/20/02 // "m-d-y" = 12-20-02 // "l M d, Y" = Friday Dec 20, 2002 // "F dS, Y" = December 20th, 2002 // "H:i:s" = 24 hour time with seconds // "h:i a" = 12 hour time with am,pm // etc... $charset = "windows-1251"; $messages = array( "edt1"=>"Invalid name for file to edit", "edt2"=>"Invalid name for file to view", "edt3"=>"Invalid extension for file to edit", "edt4"=>"Invalid extension for file to view", "edt5"=>"Unable to read file %VAR1%", "edt6"=>"No name for file to edit", "edt7"=>"No name for file to view", "dir1"=>"Unable to read folder", "dir2"=>"Корневая директория", "dir3"=>"На уроверь вверх", "dir4"=>"Trash can", "dir5"=>"Sub-folder", "act1"=>"Unknown or unsuitable action", "sch3"=>"No files found matching %VAR1%", "sch4"=>"Search results for %VAR1%", "sch5"=>"Searched folder", "sch6"=>"No search pattern", "sch7"=>"Use regular expression", "sch8"=>"Go to folder of <b>selected</b> file", "sch9"=>"Go to folder", "dwn2"=>"Invalid name for file to download", ); // Checks and rebuilds sub-directory function extractSubdir($d) { global $basedir; $tmp = ""; if ($d != "") { $rp = ereg_replace("((.*)\/.*)\/\.\.$", "\\2", $d); $tmp = strtr(str_replace($basedir, "", $rp), "\\", "/"); while ($tmp[0] == '/') $tmp = substr($tmp, 1); } return $tmp; } // Returns full file path function getFilePath($f, $sd = "") { global $basedir, $subdir; return $basedir."/".(($sd != "") ? $sd : $subdir)."/".@basename($f); } // Return UNIX file perms function getFilePerms($p) { if (($p & 0xc000) === 0xc000) $type = 's'; else if (($p & 0x4000) === 0x4000) $type = 'd'; else if (($p & 0xa000) === 0xa000) $type = 'l'; else if (($p & 0x8000) === 0x8000) $type = '-'; else if (($p & 0x6000) === 0x6000) $type = 'b'; else if (($p & 0x2000) === 0x2000) $type = 'c'; else if (($p & 0x1000) === 0x1000) $type = 'p'; else $type = '?'; $u["r"] = ($p & 00400) ? 'r' : '-'; $u["w"] = ($p & 00200) ? 'w' : '-'; $u["x"] = ($p & 00100) ? 'x' : '-'; $g["r"] = ($p & 00040) ? 'r' : '-'; $g["w"] = ($p & 00020) ? 'w' : '-'; $g["x"] = ($p & 00010) ? 'x' : '-'; $o["r"] = ($p & 00004) ? 'r' : '-'; $o["w"] = ($p & 00002) ? 'w' : '-'; $o["x"] = ($p & 00001) ? 'x' : '-'; if($p & 0x800) $u["x"] = ($u[x] == 'x') ? 's' : 'S'; if($p & 0x400) $g["x"] = ($g[x] == 'x') ? 's' : 'S'; if($p & 0x200) $o["x"] = ($o[x] == 'x') ? 't' : 'T'; return $type.$u["r"].$u["w"].$u["x"].$g["r"].$g["w"].$g["x"].$o["r"].$o["w"].$o["x"]; } // Checks file name function checkFileName($f) { global $subdir, $thisfile, $hidedotfiles, $hidefilepattern, $trashcan, $trashcaninfofileext, $showimagesdir, $imagesdir, $readmefile, $showreadmefile, $filealiases, $filealiasext; $f = @basename($f); return !( (($subdir == "") && (strtolower($f) == $thisfile)) || ($f == "..") || (($subdir == "") && ($f == $trashcan)) || (!$showimagesdir && ((($subdir == "") && ($f == $imagesdir)) || ($subdir == $imagesdir))) || ($hidedotfiles && ($f[0] == '.')) || (($hidefilepattern != "") && ereg($hidefilepattern, $f)) || ($filealiases && ereg("^.*\.".strtolower($filealiasext)."$", strtolower($f))) || (!$showreadmefile && ($f == $readmefile)) || (($subdir == $trashcan) && (($f == $readmefile) || ereg(".*\.".strtolower($trashcaninfofileext)."$", strtolower($f)))) ); } // Checks for edit extension function checkExtension($f) { global $viewextensions; if (count($viewextensions) != 0) { foreach ($viewextensions as $ext) { if (ereg(".*\.".strtolower($ext)."$", strtolower($f))) return true; } return false; } else { return true; } } // Find files matching a regexp pattern function searchFiles($sd, $searchpattern, $level = 0) { global $basedir, $subdir, $searchmaxlevels, $regexpsearch, $hidefilepattern; $count = 0; if ( ($searchmaxlevels == 0) || ($level < $searchmaxlevels)) { $dir = $basedir."/".$sd; if (!$regexpsearch && $level == 0) { $searchpattern = "^".str_replace("*", ".*", str_replace("?", ".", str_replace(".", "\.", $searchpattern)))."$"; } $d = @opendir($dir); while (($file = @readdir($d))) { if (@is_dir($dir."/".$file) && ($file != ".") && ($file != "..")) { $count += searchFiles($sd."/".$file, $searchpattern, $level + 1); } else if (ereg(strtolower($searchpattern), strtolower($file)) && !ereg($hidefilepattern, $file)) { $fp = getFilePath($file, $sd); addFileToList($file, $fp, ($subdir != "") ? str_replace($subdir."/", "", extractSubdir($fp)) : extractSubdir($fp), 9); $count++; } } @closedir($d); } return $count; } // Adds a file to file list function addFileToList($file, $fp, $alias, $level, $image = "", $msg = "") { global $files, $subdir, $trashcan, $sortby, $showunixattrs, $dateformat, $useimages, $imagesdir, $dirimage, $fileimage, $messages; if ($alias == "") $alias = $file; $date = @filemtime($fp); $size = (@is_dir($fp)) ? -1 : @filesize($fp); // negative size for directories $perms = ""; $owner = ""; $group = ""; if ($showunixattrs) { $perms = getFilePerms(@fileperms($fp)); if (function_exists("posix_getpwuid")) { $uid = @posix_getpwuid(@fileowner($fp)); $owner = $uid["name"]; } if (function_exists("posix_getgrgid")) { $gid = @posix_getgrgid(@filegroup($fp)); $group = $gid["name"]; } } if ($sortby == "size") { $key = $level." ".str_pad($size, 20, "0", STR_PAD_LEFT)." ".$alias; } else if ($sortby == "date") { $key = $level." ".date("YmdHis", $date)." ".$alias; } else { $key = $level." ".$alias; } $files[$key] = array( "name" => $file, "alias" => (($useimages) ? "<img src=\"$imagesdir/".(($image != "") ? $image : ((@is_dir($fp)) ? $dirimage : $fileimage))."\" border=0 align=center> " : "").(($subdir == $trashcan) ? ereg_replace("(.*)\.[0-9]*$", "\\1", $alias) : $alias), "level" => $level, "path" => $fp, "size" => $size, "date" => date($dateformat, $date), "perms" => $perms, "owner" => $owner, "group" => $group, "dir" => @is_dir($fp), "link" => @is_link($fp), "readonly" => !@is_writeable($fp), "statusmsg" => (($msg != "") ? $msg : ((@is_dir($fp)) ? $messages["inf4"] : $messages["inf5"])) ); } // Generates full message function getMsg($class, $msgcode, $msgparam1 = "", $msgparam2 = "") { global $messages; $msg = str_replace("%VAR1%", $msgparam1, str_replace("%VAR2%", $msgparam2, $messages[$msgcode])); return (($class != "") ? "<p class=$class>" : "").htmlspecialchars($msg); } // Manages redirections function redirectWithMsg($class, $msgcode, $msgparam1 = "", $msgparam2 = "", $extraparams = "") { global $thisscript, $subdir, $sortby; $msg = getMsg($class, $msgcode, $msgparam1, $msgparam2); header("Location: $thisscript?subdir=".rawurlencode($subdir)."&sortby=$sortby&msg=".rawurlencode($msg).$extraparams); exit; } // Page header function pageHeader() { include("parts.php"); echo '<div id=pcenter><div class="blocktitle l middle">Archive</div><div class=block>'; } // Return quoted string for JavaScript usage function quoteJS($str) { return str_replace("'", "\\'", $str);} // Getting variables (TODO : increase security here) if (!empty($HTTP_POST_VARS)) extract($HTTP_POST_VARS); if (!empty($HTTP_GET_VARS)) extract($HTTP_GET_VARS); if (function_exists("ini_set")) { // Try to inhibate error reporting setting @ini_set("display_errors", 0); } // Inhibitate file links with custom base directory if ($filelinks && (($basedir != @dirname(__FILE__)) && ($basevirtualdir == ""))) { $filelinks = false; $hiddeninfo .= "\nFile links feature inhibited"; } // Prevents from seeing this file $thisfile = strtolower(@basename(__FILE__)); // Turns antislashes into slashes for base directory $basedir = strtr($basedir, "\\", "/"); // This script URI $thisscript = $HTTP_SERVER_VARS["PHP_SELF"]; // General HTTP directives header("Expires: -1"); header("Pragma: no-cache"); header("Cache-Control: max-age=0"); header("Cache-Control: no-cache"); header("Cache-Control: no-store"); if ($act != "download") { header("Content-Type: text/html; charset=$charset"); } // Check of user's profile if ($authmethod != "none") { if ($username == "") { pageHeader(); echo getMsg("error", "rlm1"); pageFooter(); exit; } else if (!isset($user[$username])) { if (!$allowunknownusers) { pageHeader(); echo getMsg("error", "rlm2"); pageFooter(); exit; } else { $userprofile = $unknownuserprofile; } } else { $userprofile = $user[$username]["profile"]; } } else { $userprofile = $noauthprofile; } // Setting rights $allowmove = $profile[$userprofile]["allowmove"]; $allowrename = $profile[$userprofile]["allowrename"]; $allowalias = $profile[$userprofile]["allowalias"]; $allowcopy = $profile[$userprofile]["allowcopy"]; $allowdelete = $profile[$userprofile]["allowdelete"]; $allowremovedir = $profile[$userprofile]["allowremovedir"]; $allowcreatefile = $profile[$userprofile]["allowcreatefile"]; $allowcreatedir = $profile[$userprofile]["allowcreatedir"]; $allowupload = $profile[$userprofile]["allowupload"]; $allowurlupload = $profile[$userprofile]["allowurlupload"]; $allowbrowsetrashcan = $profile[$userprofile]["allowbrowsetrashcan"]; $allowemptytrashcan = $profile[$userprofile]["allowemptytrashcan"]; $allowrestorefromtrashcan = $profile[$userprofile]["allowrestorefromtrashcan"]; $allowdownload = $profile[$userprofile]["allowdownload"]; $allowedit = $profile[$userprofile]["allowedit"]; $allowshow = $profile[$userprofile]["allowshow"]; $allowsearch = $profile[$userprofile]["allowsearch"]; $allowregexpsearch = $profile[$userprofile]["allowregexpsearch"]; // Parameters check if (!isset($subdir) || $subdir == ".") $subdir = ""; if ( ($subdir != "") && ( strstr($subdir, "..") || (!$allowbrowsetrashcan && ($subdir == $trashcan)) || (!$showimagesdir && ($subdir == $imagesdir)) ) ) { $subdir = ""; $hiddeninfo .= "\nRedirected to base directory"; } $subdir = extractSubdir($basedir."/".$subdir); if (!isset($sortby)) $sortby = $defaultsortby; if (!isset($act)) $act = ""; if (!isset($file)) { if (!isset($selfiles) || !is_array($selfiles)) { $file = ""; } else { $file = $selfiles[0]; } } // Array for file lists $files = array(); // Processes actions and redirects to pages if (($act != "edit") && ($act != "show")) { if ($act == "") { @clearstatcache(); if ($d = @opendir($basedir."/".$subdir)) { // builds an indexed array for files if ($subdir != "") { addFileToList("", $basedir, "[".$messages["dir2"]."]", 0, $upperdirimage, $messages["inf6"]); } if ($subdir != $trashcan) { addFileToList("..", getFilePath(".."), "[".$messages["dir3"]."]", 2, $upperdirimage, $messages["inf7"]); } if ($allowbrowsetrashcan && ($subdir != $trashcan) && (@is_dir($basedir."/".$trashcan))) { addFileToList($trashcan, $basedir."/".$trashcan, "[".$messages["dir4"]."]", 1, $trashcanimage, $messages["inf8"]); } while ($file = @readdir($d)) { if (checkFileName($file)) { $fp = getFilePath($file); $fp_alias = $fp.".".$filealiasext; $alias = ""; if ($filealiases && @is_readable($fp_alias)) { $fd = @fopen($fp_alias, "r"); $alias = trim(@fread($fd, @filesize($fp_alias)))." <i>(".(($subdir == $trashcan) ? ereg_replace("(.*)\.[0-9]*$", "\\1", $file) : $file).")</i>"; @fclose($fd); } addFileToList($file, $fp, $alias, 9); } } @closedir($d); // Sort the array according to indexes ksort($files); } else { pageHeader(); echo getMsg("error", "dir1", $subdir); pageFooter(); exit; } } else if ($allowsearch && ($act == "search")) { $searchpattern = trim($searchpattern); if ($searchpattern != "") { if (!isset($regexpsearch)) $regexpsearch = false; @clearstatcache(); addFileToList($subdir, getFilePath("."), "[".$messages["sch5"]."]", 1, $upperdirimage); if (searchFiles($subdir, $searchpattern) == 0) { redirectWithMsg("warning", "sch3", $searchpattern, "", "&searchpattern=".rawurlencode($searchpattern).(($allowregexpsearch) ? "&regexpsearch=$regexpsearch" : "")); } ksort($files); } else { redirectWithMsg("error", "sch6"); } } else if ($allowdownload && ($act == "download") && ($subdir != $trashcan)) { if (isset($file) && ($file != "")) { $subdir = @dirname($file); if (!checkFileName($file) || (($subdir == "") && ($file == $trashcan))) { redirectWithMsg("warning", "dwn2"); } else { $fp = getFilePath($file); if (@is_readable($fp)) { @clearstatcache(); header("Content-Type: application/force-download"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".@filesize($fp)); header("Content-Disposition: attachment; filename=\"".@basename($file)."\""); @readfile($fp); exit; } else { redirectWithMsg("error", "dwn3", $file); } } } else { redirectWithMsg("warning", "dwn4"); } } else { redirectWithMsg("error", "act1"); } } // Common part of the page pageHeader(); echo "<p><table width=100% border=0 cellspacing=2 cellpadding=2>"; echo "<td class=row>"; if ($act == "search") echo getMsg("", "sch4", $searchpattern)." ("; if ($subdir == "") echo "Корневая директория"; else echo 'Под-папка'.": ".htmlspecialchars($subdir); if ($act=="search") echo ")"; echo "</td>"; echo "<form action=$thisscript method=get name=searchForm>"; echo "<td class=row width=183>"; echo "<input name=act type=hidden value=search>"; echo "<input name=subdir type=hidden value=\"$subdir\">"; echo "<input name=sortby type=hidden value=$sortby>"; echo "<input name=searchpattern class=entries type=text size=15 value=\"$searchpattern\"> "; echo "<input type=submit class=entries value='Поиск'>"; if ($allowregexpsearch) echo "<br><input type=checkbox value=true name=regexpsearch".(($regexpsearch) ? " checked" : "")."> Use regular expression"; echo "</td></tr></form></table>"; /* // Edit or show page if (($allowedit && ($act == "edit")) || ($allowshow && ($act == "show")) && ($subdir != $trashcan)) { if (isset($file) && ($file != "")) { if (!checkFileName($file) || (($subdir == "") && ($file == $trashcan))) { echo getMsg("warning", ($act == "edit") ? "edt1" : "edt2"); } else if (!checkExtension($file)) { echo getMsg("warning", ($act == "edit") ? "edt3" : "edt4"); } else { if (!isset($data)) { $fp = getFilePath($file); if ($fd = @fopen($fp, "r")) { $data = @fread($fd, @filesize($fp)); @fclose($fd); } else { echo getMsg("error", "edt5"); } } else { echo "<p><b>".$messages["edt9"]." : </b>".htmlspecialchars($file); echo "<p><table border=0 cellspacing=0 cellpadding=10>"; echo "<tr><td width=700><pre>".htmlspecialchars($data)."</pre> </td></tr>"; echo "</table>"; echo "<p><a href=$thisscript?subdir=".rawurlencode($subdir)."&sortby=$sortby onMouseOver='return statusMsg(\"".quoteJS($messages["edt12"])."\");' onMouseOut='return statusMsg(\"\");'>".$messages["edt12"]."</a>"; } } } else { echo getMsg("warning", ($act == "edit") ? "edt6" : "edt7"); } // File list page } */ if (!empty($files)) { echo "<p><table width=100% cellpadding=4 cellspacing=4 border=0>"; echo "<form action=$thisscript method=post name=listForm>"; echo "<input name=act type=hidden value=''>"; echo "<input name=subdir type=hidden value=\"$subdir\">"; echo "<input name=sortby type=hidden value=$sortby>"; echo "<tr>"; echo "<td align=center><b>"; echo "<a href=$thisscript?subdir=".rawurlencode($subdir)."&sortby=name".(($act == "search") ? "&act=search&searchpattern=".rawurlencode($searchpattern) : "").">Имя</a>"; echo "</b></td>"; echo "<td align=center width=50><b>"; echo "<a href=$thisscript?subdir=".rawurlencode($subdir)."&sortby=size".(($act == "search") ? "&act=search&searchpattern=".rawurlencode($searchpattern) : "").">Размер</a>"; echo "</td></b>"; echo "<td align=center width=80><b>"."<a href=$thisscript?subdir=".rawurlencode($subdir)."&sortby=date".(($act == "search") ? "&act=search&searchpattern=".rawurlencode($searchpattern) : "").">Date</a>"."</td>"; echo "</tr>"; // Files and directories $total = 0; $nbfiles = 0; $nbdirs = 0; reset($files); while (list($key, $file) = each($files)) { // Directory section if ($file["dir"]) { if (($subdir != "") || ($file["name"] != "..")) { echo "<tr><td class=row>"; if ($file["link"]) { echo "<i><b>".htmlspecialchars($file["name"])."</b></i>"; } else { echo "<a href=$thisscript?subdir=".rawurlencode(extractSubdir($file["path"]))."&sortby=$sortby>"; echo $file["alias"]; echo "</a>"; } echo "</td>"; echo "<td width=50 class=row> </td>"; echo "<td width=80 class=row> </td>"; echo "</tr>"; if ($file["level"] == 9) $nbdirs++; } // File section } else { echo "<tr>"; echo "<td class=row>".(($file["link"]) ? "<i>" : ""); if ($filelinks) { if ($basevirtualdir == "") { echo "<a href=".str_replace("%2F", "/", rawurlencode(extractSubdir($file["path"]))); } else { echo "<a href=".$basevirtualdir."/".rawurlencode($file["name"]); } echo " onMouseOver='return statusMsg(\"".quoteJS($file["statusmsg"])."\");' onMouseOut='return statusMsg(\"\");'>"; echo $file["alias"]; echo "</a>"; } else { // echo htmlspecialchars($file["name"]); echo "<a href='ftp://your_url/".str_replace("%2F", "/", rawurlencode(extractSubdir($file["path"])))."'>".htmlspecialchars($file["name"])."</a>"; } echo (($file["link"]) ? "</i>" : "")."</td>"; echo "<td class=row width=40>".round(($file["size"]/1024)/1024)."Mb</td>"; echo "<td class=row width=80>".$file["date"]."</td>"; // echo "<td class=row width=40 align=center>"; if (($act != "search") && ($allowedit || $allowshow) && checkExtension($file["name"]) && ($subdir != $trashcan)) { echo "<center><a href=$thisscript?act=show&subdir=".rawurlencode($subdir)."&sortby=$sortby&file=".rawurlencode($file["name"]).">Show</a></center>"; } if (($allowdownload) && ($subdir != $trashcan)) { // echo "<center><a href=$thisscript?act=download&subdir=".rawurlencode($subdir)."&sortby=$sortby&file=".str_replace("%2F", "/", rawurlencode(extractSubdir($file["path"]))).">Download</a></center>"; // echo "<center><a href='ftp://your_url/".str_replace("%2F", "/", rawurlencode(extractSubdir($file["path"])))."'>Download</a></center>"; } echo "</td></tr>"; $total += $file["size"]; $nbfiles++; }} echo "<th colspan=3>$nbdirs папок, $nbfiles файлов (".round(($total/1024)/1024)." Mb".")</th></tr>"; } echo "</table></div></div>"; ?> Извеняюсь за прикрепленный файл, нет аттачей в теме.
  12. Render_

    Сбор багов и feature requests

    В конфигураторе -> Настройки -> Информация о сервере пишет: Версия Stargazer 2.4.01, хотя стоит сборка stg-2.4-2007.01.06, в stg-2.402.9.7 и 2.401.9.7 тоже самое пишет. Это нормально ?
×
×
  • Создать...