1
0

index.php 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
  1. <?php
  2. /* $Id: index.php 3164 2007-07-23 09:58:35Z warion $ */
  3. /*******************************************************************************
  4. LICENSE
  5. This program is free software; you can redistribute it and/or
  6. modify it under the terms of the GNU General Public License (GPL)
  7. as published by the Free Software Foundation; either version 2
  8. of the License, or (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. To read the license please visit http://www.gnu.org/copyleft/gpl.html
  14. *******************************************************************************/
  15. // prevent direct invocation
  16. if ((!isset($cfg['user'])) || (isset($_REQUEST['cfg']))) {
  17. @ob_end_clean();
  18. @header("location: ../../index.php");
  19. exit();
  20. }
  21. /******************************************************************************/
  22. if (isset($_REQUEST['ajax_update'])) {
  23. $isAjaxUpdate = true;
  24. $ajaxUpdateParams = tfb_getRequestVar('ajax_update');
  25. // init template-instance
  26. tmplInitializeInstance($cfg["theme"], "inc.transferList.tmpl");
  27. } else {
  28. $isAjaxUpdate = false;
  29. // init template-instance
  30. tmplInitializeInstance($cfg["theme"], "page.index.tmpl");
  31. }
  32. // =============================================================================
  33. // set common vars
  34. // =============================================================================
  35. // language
  36. $tmpl->setvar('_STATUS', $cfg['_STATUS']);
  37. $tmpl->setvar('_ESTIMATEDTIME', $cfg['_ESTIMATEDTIME']);
  38. $tmpl->setvar('_RUNTRANSFER', $cfg['_RUNTRANSFER']);
  39. $tmpl->setvar('_STOPTRANSFER', $cfg['_STOPTRANSFER']);
  40. $tmpl->setvar('_DELQUEUE', $cfg['_DELQUEUE']);
  41. $tmpl->setvar('_SEEDTRANSFER', $cfg['_SEEDTRANSFER']);
  42. $tmpl->setvar('_DELETE', $cfg['_DELETE']);
  43. $tmpl->setvar('_WARNING', $cfg['_WARNING']);
  44. $tmpl->setvar('_NOTOWNER', $cfg['_NOTOWNER']);
  45. $tmpl->setvar('_STOPPING', $cfg['_STOPPING']);
  46. $tmpl->setvar('_TRANSFERFILE', $cfg['_TRANSFERFILE']);
  47. $tmpl->setvar('_ADMIN', $cfg['_ADMIN']);
  48. $tmpl->setvar('_USER', $cfg['_USER']);
  49. // username
  50. $tmpl->setvar('user', $cfg["user"]);
  51. // queue
  52. $tmpl->setvar('queueActive', (FluxdQmgr::isRunning()) ? 1 : 0);
  53. // incoming-path
  54. $tmpl->setvar('path_incoming', ($cfg["enable_home_dirs"] != 0) ? $cfg["user"] : $cfg["path_incoming"]);
  55. // some configs
  56. $tmpl->setvar('enable_metafile_download', $cfg["enable_metafile_download"]);
  57. $tmpl->setvar('enable_multiops', $cfg["enable_multiops"]);
  58. $tmpl->setvar('twd', $cfg["transfer_window_default"]);
  59. // =============================================================================
  60. // transfer-list
  61. // =============================================================================
  62. $arUserTorrent = array();
  63. $arListTorrent = array();
  64. // settings
  65. $settings = convertIntegerToArray($cfg["index_page_settings"]);
  66. // sortOrder
  67. $sortOrder = tfb_getRequestVar("so");
  68. $tmpl->setvar('sortOrder', (empty($sortOrder)) ? $cfg["index_page_sortorder"] : $sortOrder);
  69. // t-list
  70. $arList = getTransferArray($sortOrder);
  71. $progress_color = "#00ff00";
  72. $bar_width = "4";
  73. foreach ($arList as $transfer) {
  74. // ---------------------------------------------------------------------
  75. // displayname
  76. $displayname = (strlen($transfer) >= 47) ? substr($transfer, 0, 44)."..." : $transfer;
  77. // owner
  78. $transferowner = getOwner($transfer);
  79. $owner = IsOwner($cfg["user"], $transferowner);
  80. // stat
  81. $sf = new StatFile($transfer, $transferowner);
  82. // settings
  83. if (isset($transfers['settings'][$transfer])) {
  84. $settingsAry = $transfers['settings'][$transfer];
  85. } else {
  86. $settingsAry = array();
  87. if (substr($transfer, -8) == ".torrent") {
  88. // this is a t-client
  89. $settingsAry['type'] = "torrent";
  90. $settingsAry['client'] = $cfg["btclient"];
  91. } else if (substr($transfer, -5) == ".wget") {
  92. // this is wget.
  93. $settingsAry['type'] = "wget";
  94. $settingsAry['client'] = "wget";
  95. } else if (substr($transfer, -4) == ".nzb") {
  96. // this is nzbperl.
  97. $settingsAry['type'] = "nzb";
  98. $settingsAry['client'] = "nzbperl";
  99. } else {
  100. AuditAction($cfg["constants"]["error"], "INVALID TRANSFER: ".$transfer);
  101. @error("Invalid Transfer", "", "", array($transfer));
  102. }
  103. $settingsAry['hash'] = "";
  104. $settingsAry["savepath"] = ($cfg["enable_home_dirs"] != 0)
  105. ? $cfg["path"].$transferowner.'/'
  106. : $cfg["path"].$cfg["path_incoming"].'/';
  107. $settingsAry['datapath'] = "";
  108. }
  109. // cache running-flag in local var. we will access that often
  110. $transferRunning = $sf->running;
  111. // cache percent-done in local var. ...
  112. $percentDone = $sf->percent_done;
  113. // hide seeding - we do it asap to keep things as fast as possible
  114. if (($_SESSION['settings']['index_show_seeding'] == 0) && ($percentDone >= 100) && ($transferRunning == 1)) {
  115. $cfg["total_upload"] = $cfg["total_upload"] + GetSpeedValue($sf->up_speed);
  116. continue;
  117. }
  118. // status-image
  119. $hd = getStatusImage($sf);
  120. // ---------------------------------------------------------------------
  121. //XFER: update1: add upload/download stats to the xfer array
  122. if (($cfg['enable_xfer'] == 1) && ($cfg['xfer_realtime'] == 1))
  123. @Xfer::update1($transfer, $transferowner, $settingsAry['client'], $settingsAry['hash'], $sf->uptotal, $sf->downtotal);
  124. // ---------------------------------------------------------------------
  125. // injects
  126. if (!file_exists($cfg["transfer_file_path"].$transfer.".stat")) {
  127. $transferRunning = 2;
  128. $sf->running = "2";
  129. $sf->size = getTransferSize($transfer);
  130. injectTransfer($transfer);
  131. }
  132. // totals-preparation
  133. // if downtotal + uptotal + progress > 0
  134. if (($settings[2] + $settings[3] + $settings[5]) > 0) {
  135. $ch = ClientHandler::getInstance($settingsAry['client']);
  136. $transferTotals = $ch->getTransferTotalOP($transfer, $settingsAry['hash'], $sf->uptotal, $sf->downtotal);
  137. }
  138. // ---------------------------------------------------------------------
  139. // preprocess stat-file and get some vars
  140. $estTime = "&nbsp;";
  141. $statusStr = "&nbsp;";
  142. $show_run = true;
  143. switch ($transferRunning) {
  144. case 2: // new
  145. $statusStr = "New";
  146. $is_no_file = 1;
  147. break;
  148. case 3: // queued
  149. $statusStr = "Queued";
  150. $estTime = "Waiting...";
  151. $is_no_file = 1;
  152. break;
  153. default: // running
  154. // increment the totals
  155. if (!isset($cfg["total_upload"]))
  156. $cfg["total_upload"] = 0;
  157. if (!isset($cfg["total_download"]))
  158. $cfg["total_download"] = 0;
  159. $cfg["total_upload"] = $cfg["total_upload"] + GetSpeedValue($sf->up_speed);
  160. $cfg["total_download"] = $cfg["total_download"] + GetSpeedValue($sf->down_speed);
  161. // $estTime
  162. if ($transferRunning == 0) {
  163. $estTime = $sf->time_left;
  164. } else {
  165. if ($sf->time_left != "" && $sf->time_left != "0") {
  166. if (($cfg["display_seeding_time"] == 1) && ($sf->percent_done >= 100) ) {
  167. $estTime = (($sf->seedlimit > 0) && (!empty($sf->up_speed)) && (intval(($sf->up_speed{0})) > 0))
  168. ? convertTime(((($sf->seedlimit) / 100 * $sf->size) - $sf->uptotal) / GetSpeedInBytes($sf->up_speed))
  169. : '-';
  170. } else {
  171. $estTime = $sf->time_left;
  172. }
  173. }
  174. }
  175. // $show_run + $statusStr
  176. if ($percentDone >= 100) {
  177. $statusStr = (trim($sf->up_speed) != "" && $transferRunning == 1) ? "Seeding" : "Done";
  178. $show_run = false;
  179. } else if ($percentDone < 0) {
  180. $statusStr = "Stopped";
  181. $show_run = true;
  182. } else {
  183. $statusStr = "Leeching";
  184. }
  185. // pid-file
  186. $is_no_file = (is_file($cfg["transfer_file_path"].$transfer.".pid")) ? 0 : 1;
  187. break;
  188. }
  189. // ==================================================================== name
  190. // =================================================================== owner
  191. // ==================================================================== size
  192. $format_af_size = "";
  193. if($settings[1] != 0)
  194. {
  195. $format_af_size = formatBytesTokBMBGBTB($sf->size);
  196. if($format_af_size == "") $format_af_size = "&nbsp;";
  197. }
  198. // =============================================================== downtotal
  199. $format_downtotal = "";
  200. if($settings[2] != 0)
  201. {
  202. $format_downtotal = formatBytesTokBMBGBTB($transferTotals["downtotal"]);
  203. if($format_downtotal == "") $format_downtotal = "&nbsp;";
  204. }
  205. // ================================================================= uptotal
  206. $format_uptotal = "";
  207. if($settings[3] != 0)
  208. {
  209. $format_uptotal = formatBytesTokBMBGBTB($transferTotals["uptotal"]);
  210. if($format_uptotal == "") $format_uptotal = "&nbsp;";
  211. }
  212. // ================================================================== status
  213. // ================================================================ progress
  214. if ($settings[5] != 0) {
  215. if (($percentDone >= 100) && (trim($sf->up_speed) != "")) {
  216. $graph_width = -1;
  217. $percentage = @number_format((($transferTotals["uptotal"] / $sf->size) * 100), 2) . '%';
  218. } else {
  219. if ($percentDone >= 1) {
  220. $graph_width = $percentDone;
  221. $percentage = $graph_width . '%';
  222. } else if ($percentDone < 0) {
  223. $graph_width = round(($percentDone*-1)-100,1);
  224. $percentage = $graph_width . '%';
  225. } else {
  226. $graph_width = 0;
  227. $percentage = '0%';
  228. }
  229. }
  230. $background = ($graph_width == 100) ? $progress_color : "#000000";
  231. } else {
  232. $graph_width = 0;
  233. $background = "";
  234. $percentage = "";
  235. }
  236. // ==================================================================== down
  237. if ($settings[6] != 0) {
  238. if ($transferRunning == 1)
  239. $down_speed = (trim($sf->down_speed) != "") ? $sf->down_speed : '0.0 kB/s';
  240. else
  241. $down_speed = "&nbsp;";
  242. } else {
  243. $down_speed = "&nbsp;";
  244. }
  245. // ====================================================================== up
  246. if ($settings[7] != 0) {
  247. if ($transferRunning == 1)
  248. $up_speed = (trim($sf->up_speed) != "") ? $sf->up_speed : '0.0 kB/s';
  249. else
  250. $up_speed = "&nbsp;";
  251. } else {
  252. $up_speed = "&nbsp;";
  253. }
  254. // =================================================================== seeds
  255. if ($settings[8] != 0) {
  256. $seeds = ($transferRunning == 1)
  257. ? $sf->seeds
  258. : "&nbsp;";
  259. } else {
  260. $seeds = "&nbsp;";
  261. }
  262. // =================================================================== peers
  263. if ($settings[9] != 0) {
  264. $peers = ($transferRunning == 1)
  265. ? $sf->peers
  266. : "&nbsp;";
  267. } else {
  268. $peers = "&nbsp;";
  269. }
  270. // ===================================================================== ETA
  271. // ================================================================== client
  272. if ($settings[11] != 0) {
  273. switch ($settingsAry['client']) {
  274. case "tornado":
  275. $client = "B";
  276. break;
  277. case "transmission":
  278. $client = "T";
  279. break;
  280. case "mainline":
  281. $client = "M";
  282. break;
  283. case "azureus":
  284. $client = "A";
  285. break;
  286. case "wget":
  287. $client = "W";
  288. break;
  289. case "nzbperl":
  290. $client = "N";
  291. break;
  292. default:
  293. $client = "U";
  294. }
  295. } else {
  296. $client = "&nbsp;";
  297. }
  298. // -------------------------------------------------------------------------
  299. // create temp-array
  300. $tArray = array(
  301. 'is_owner' => ($cfg['isAdmin']) ? true : $owner,
  302. 'transferRunning' => $transferRunning,
  303. 'url_entry' => urlencode($transfer),
  304. 'hd_image' => $hd->image,
  305. 'hd_title' => $hd->title,
  306. 'displayname' => $displayname,
  307. 'transferowner' => $transferowner,
  308. 'format_af_size' => $format_af_size,
  309. 'format_downtotal' => $format_downtotal,
  310. 'format_uptotal' => $format_uptotal,
  311. 'statusStr' => $statusStr,
  312. 'graph_width' => $graph_width,
  313. 'percentage' => $percentage,
  314. 'progress_color' => $progress_color,
  315. 'bar_width' => $bar_width,
  316. 'background' => $background,
  317. '100_graph_width' => (100 - $graph_width),
  318. 'down_speed' => $down_speed,
  319. 'up_speed' => $up_speed,
  320. 'seeds' => $seeds,
  321. 'peers' => $peers,
  322. 'estTime' => $estTime,
  323. 'clientType' => $settingsAry['type'],
  324. 'upload_support_enabled' => $cfg["supportMap"][$settingsAry['client']]['max_upload_rate'],
  325. 'client' => $client,
  326. 'url_path' => urlencode(str_replace($cfg["path"],'', $settingsAry['savepath']).$settingsAry['datapath']),
  327. 'datapath' => $settingsAry['datapath'],
  328. 'is_no_file' => $is_no_file,
  329. 'show_run' => $show_run,
  330. 'entry' => $transfer
  331. );
  332. // Is this transfer for the user list or the general list?
  333. if ($owner)
  334. array_push($arUserTorrent, $tArray);
  335. else
  336. array_push($arListTorrent, $tArray);
  337. }
  338. $tmpl->setloop('arUserTorrent', $arUserTorrent);
  339. $tmpl->setloop('arListTorrent', $arListTorrent);
  340. //XFER: update 2
  341. if (($cfg['enable_xfer'] == 1) && ($cfg['xfer_realtime'] == 1))
  342. @Xfer::update2();
  343. $tmpl->setvar('settings_0', $settings[0]);
  344. $tmpl->setvar('settings_1', $settings[1]);
  345. $tmpl->setvar('settings_2', $settings[2]);
  346. $tmpl->setvar('settings_3', $settings[3]);
  347. $tmpl->setvar('settings_4', $settings[4]);
  348. $tmpl->setvar('settings_5', $settings[5]);
  349. $tmpl->setvar('settings_6', $settings[6]);
  350. $tmpl->setvar('settings_7', $settings[7]);
  351. $tmpl->setvar('settings_8', $settings[8]);
  352. $tmpl->setvar('settings_9', $settings[9]);
  353. $tmpl->setvar('settings_10', $settings[10]);
  354. $tmpl->setvar('settings_11', $settings[11]);
  355. if (sizeof($arUserTorrent) > 0)
  356. $tmpl->setvar('are_user_transfer', 1);
  357. $boolCond = true;
  358. if ($cfg['enable_restrictivetview'] == 1)
  359. $boolCond = $cfg['isAdmin'];
  360. $tmpl->setvar('are_transfer', (($boolCond) && (sizeof($arListTorrent) > 0)) ? 1 : 0);
  361. // =============================================================================
  362. // ajax-index
  363. // =============================================================================
  364. if ($isAjaxUpdate) {
  365. $content = "";
  366. $isFirst = true;
  367. // server stats
  368. if ($ajaxUpdateParams{0} == "1") {
  369. $isFirst = false;
  370. $serverStats = getServerStats();
  371. $serverCount = count($serverStats);
  372. for ($i = 0; $i < $serverCount; $i++) {
  373. $content .= $serverStats[$i];
  374. if ($i < ($serverCount - 1))
  375. $content .= $cfg['stats_txt_delim'];
  376. }
  377. }
  378. // xfer
  379. if ($ajaxUpdateParams{1} == "1") {
  380. if ($isFirst)
  381. $isFirst = false;
  382. else
  383. $content .= "|";
  384. $xferStats = Xfer::getStatsFormatted();
  385. $xferCount = count($xferStats);
  386. for ($i = 0; $i < $xferCount; $i++) {
  387. $content .= $xferStats[$i];
  388. if ($i < ($xferCount - 1))
  389. $content .= $cfg['stats_txt_delim'];
  390. }
  391. }
  392. // users
  393. if ($ajaxUpdateParams{2} == "1") {
  394. if ($isFirst)
  395. $isFirst = false;
  396. else
  397. $content .= "|";
  398. $countUsers = count($cfg['users']);
  399. $arOnlineUsers = array();
  400. $arOfflineUsers = array();
  401. for ($i = 0; $i < $countUsers; $i++) {
  402. if (IsOnline($cfg['users'][$i]))
  403. array_push($arOnlineUsers, $cfg['users'][$i]);
  404. else
  405. array_push($arOfflineUsers, $cfg['users'][$i]);
  406. }
  407. $countOnline = count($arOnlineUsers);
  408. for ($i = 0; $i < $countOnline; $i++) {
  409. $content .= $arOnlineUsers[$i];
  410. if ($i < ($countOnline - 1))
  411. $content .= $cfg['stats_txt_delim'];
  412. }
  413. if ($cfg["hide_offline"] == 0) {
  414. $content .= "+";
  415. $countOffline = count($arOfflineUsers);
  416. for ($i = 0; $i < $countOffline; $i++) {
  417. $content .= $arOfflineUsers[$i];
  418. if ($i < ($countOffline - 1))
  419. $content .= $cfg['stats_txt_delim'];
  420. }
  421. }
  422. }
  423. // transfer list
  424. if ($ajaxUpdateParams{3} == "1") {
  425. if ($isFirst)
  426. $isFirst = false;
  427. else
  428. $content .= "|";
  429. $content .= $tmpl->grab();
  430. }
  431. // send and out
  432. @header("Cache-Control: no-cache");
  433. @header("Pragma: no-cache");
  434. @header("Content-Type: text/plain");
  435. echo $content;
  436. exit();
  437. }
  438. // =============================================================================
  439. // standard-index
  440. // =============================================================================
  441. // goodlookingstats-init
  442. if ($cfg["enable_goodlookstats"] != "0") {
  443. $tmpl->setvar('enable_goodlookstats', 1);
  444. $settingsHackStats = convertByteToArray($cfg["hack_goodlookstats_settings"]);
  445. }
  446. $onLoad = "";
  447. // page refresh
  448. if ($_SESSION['settings']['index_meta_refresh'] != 0) {
  449. $tmpl->setvar('page_refresh', $cfg["page_refresh"]);
  450. $tmpl->setvar('meta_refresh', $cfg["page_refresh"].';URL=index.php?iid=index');
  451. $onLoad .= "initRefresh(".$cfg["page_refresh"].");";
  452. $tmpl->setvar('_PAGEWILLREFRESH', $cfg['_PAGEWILLREFRESH']);
  453. } else {
  454. $tmpl->setvar('_TURNONREFRESH', $cfg['_TURNONREFRESH']);
  455. }
  456. // AJAX update
  457. if ($_SESSION['settings']['index_ajax_update'] != 0) {
  458. $tmpl->setvar('index_ajax_update', $cfg["index_ajax_update"]);
  459. $ajaxInit = "ajax_initialize(";
  460. $ajaxInit .= (intval($cfg['index_ajax_update']) * 1000);
  461. $ajaxInit .= ",'".$cfg['stats_txt_delim']."'";
  462. $ajaxInit .= ",".$cfg["enable_index_ajax_update_silent"];
  463. $ajaxInit .= ",".$cfg["enable_index_ajax_update_title"];
  464. $ajaxInit .= ",'".$cfg['pagetitle']."'";
  465. $ajaxInit .= ",".$cfg["enable_goodlookstats"];
  466. if ($cfg["enable_goodlookstats"] != "0")
  467. $ajaxInit .= ",'".$settingsHackStats[0].':'.$settingsHackStats[1].':'.$settingsHackStats[2].':'.$settingsHackStats[3].':'.$settingsHackStats[4].':'.$settingsHackStats[5]."'";
  468. else
  469. $ajaxInit .= ",'0:0:0:0:0:0'";
  470. $ajaxInit .= ",".$cfg["index_page_stats"];
  471. if (FluxdQmgr::isRunning())
  472. $ajaxInit .= ",1";
  473. else
  474. $ajaxInit .= ",0";
  475. if (($cfg['enable_xfer'] == 1) && ($cfg['xfer_realtime'] == 1))
  476. $ajaxInit .= ",1";
  477. else
  478. $ajaxInit .= ",0";
  479. if (($cfg['ui_displayusers'] == 1) && ($cfg['enable_index_ajax_update_users'] == 1))
  480. $ajaxInit .= ",1";
  481. else
  482. $ajaxInit .= ",0";
  483. $ajaxInit .= ",".$cfg["hide_offline"];
  484. $ajaxInit .= ",".$cfg["enable_index_ajax_update_list"];
  485. $ajaxInit .= ",".$cfg["enable_sorttable"];
  486. $ajaxInit .= ",'".$cfg['drivespacebar']."'";
  487. $ajaxInit .= ",".$cfg["ui_displaybandwidthbars"];
  488. $ajaxInit .= ",'".$cfg['bandwidthbar']."'";
  489. $ajaxInit .= ");onbeforeunload = ajax_unload;";
  490. $onLoad .= $ajaxInit;
  491. }
  492. //Hide Seeds
  493. if ($_SESSION['settings']['index_show_seeding'] != 0) {
  494. $tmpl->setvar('index_show_seeding', $_SESSION['settings']['index_show_seeding']);
  495. }
  496. // onLoad
  497. if ($onLoad != "") {
  498. $tmpl->setvar('onLoad', $onLoad);
  499. $tmpl->setvar('_SECONDS', $cfg['_SECONDS']);
  500. $tmpl->setvar('_TURNOFFREFRESH', $cfg['_TURNOFFREFRESH']);
  501. }
  502. // connections
  503. if ($cfg["index_page_connections"] != 0) {
  504. $netstatConnectionsSum = @netstatConnectionsSum();
  505. $netstatConnectionsMax = (isset($transfers['sum']['maxcons']))
  506. ? "(".$transfers['sum']['maxcons'].")"
  507. : "(0)";
  508. } else {
  509. $netstatConnectionsSum = "n/a";
  510. $netstatConnectionsMax = "";
  511. }
  512. // loadavg
  513. $loadavgString = ($cfg["show_server_load"] != 0) ? @getLoadAverageString() : "n/a";
  514. // Width of top right stats cell:
  515. $stats_cell_width=0;
  516. // links
  517. if ($cfg["ui_displaylinks"] != "0") {
  518. $stats_cell_width+=200;
  519. if (isset($cfg['linklist']))
  520. $tmpl->setloop('linklist', $cfg['linklist']);
  521. }
  522. // goodlookingstats
  523. if ($cfg["enable_goodlookstats"] != "0") {
  524. $stats_cell_width+=180;
  525. if ($settingsHackStats[0] == 1) {
  526. $tmpl->setvar('settingsHackStats1', 1);
  527. $tmpl->setvar('settingsHackStats11', @number_format($cfg["total_download"], 2));
  528. }
  529. if ($settingsHackStats[1] == 1) {
  530. $tmpl->setvar('settingsHackStats2', 1);
  531. $tmpl->setvar('settingsHackStats22', @number_format($cfg["total_upload"], 2));
  532. }
  533. if ($settingsHackStats[2] == 1) {
  534. $tmpl->setvar('settingsHackStats3', 1);
  535. $tmpl->setvar('settingsHackStats33', @number_format($cfg["total_download"]+$cfg["total_upload"], 2));
  536. }
  537. if ($settingsHackStats[3] == 1) {
  538. $tmpl->setvar('settingsHackStats4', 1);
  539. $tmpl->setvar('settingsHackStats44', $netstatConnectionsSum);
  540. }
  541. if ($settingsHackStats[4] == 1) {
  542. $tmpl->setvar('settingsHackStats5', 1);
  543. $tmpl->setvar('settingsHackStats55', $cfg['freeSpaceFormatted']);
  544. }
  545. if ($settingsHackStats[5] == 1) {
  546. $tmpl->setvar('settingsHackStats6', 1);
  547. $tmpl->setvar('settingsHackStats66', $loadavgString);
  548. }
  549. }
  550. // users
  551. if ($cfg["ui_displayusers"] != "0") {
  552. $stats_cell_width+=100;
  553. $tmpl->setvar('ui_displayusers',1);
  554. $tmpl->setvar('hide_offline', $cfg["hide_offline"]);
  555. $userCount = count($cfg['users']);
  556. $arOnlineUsers = array();
  557. $arOfflineUsers = array();
  558. for ($inx = 0; $inx < $userCount; $inx++) {
  559. if (IsOnline($cfg['users'][$inx]))
  560. array_push($arOnlineUsers, array('user' => $cfg['users'][$inx]));
  561. else
  562. array_push($arOfflineUsers, array('user' => $cfg['users'][$inx]));
  563. }
  564. if (count($arOnlineUsers) > 0)
  565. $tmpl->setloop('arOnlineUsers', $arOnlineUsers);
  566. if (count($arOfflineUsers) > 0)
  567. $tmpl->setloop('arOfflineUsers', $arOfflineUsers);
  568. }
  569. // Width of top right stats cell:
  570. $tmpl->setvar('stats_cell_width',$stats_cell_width);
  571. // xfer
  572. if ($cfg['enable_xfer'] == 1) {
  573. if ($cfg['enable_public_xfer'] == 1)
  574. $tmpl->setvar('enable_xfer', 1);
  575. if ($cfg['xfer_realtime'] == 1) {
  576. $xfer_total = Xfer::getStatsTotal();
  577. $tmpl->setvar('xfer_realtime', 1);
  578. if ($cfg['xfer_day'])
  579. $tmpl->setvar('xfer_day', tmplGetXferBar($cfg['xfer_day'],$xfer_total['day']['total'],$cfg['_XFERTHRU'].' Today:'));
  580. if ($cfg['xfer_week'])
  581. $tmpl->setvar('xfer_week', tmplGetXferBar($cfg['xfer_week'],$xfer_total['week']['total'],$cfg['_XFERTHRU'].' '.$cfg['week_start'].':'));
  582. $monthStart = strtotime(date('Y-m-').$cfg['month_start']);
  583. $monthText = (date('j') < $cfg['month_start']) ? date('M j',strtotime('-1 Day',$monthStart)) : date('M j',strtotime('+1 Month -1 Day',$monthStart));
  584. if ($cfg['xfer_month'])
  585. $tmpl->setvar('xfer_month', tmplGetXferBar($cfg['xfer_month'],$xfer_total['month']['total'],$cfg['_XFERTHRU'].' '.$monthText.':'));
  586. if ($cfg['xfer_total'])
  587. $tmpl->setvar('xfer_total', tmplGetXferBar($cfg['xfer_total'],$xfer_total['total']['total'],$cfg['_TOTALXFER'].':'));
  588. }
  589. }
  590. // drivespace-warning
  591. if ($cfg['driveSpace'] >= 98) {
  592. if ($cfg['enable_bigboldwarning'] != 0)
  593. $tmpl->setvar('enable_bigboldwarning', 1);
  594. else
  595. $tmpl->setvar('enable_jswarning', 1);
  596. }
  597. // bottom stats
  598. if ($cfg['index_page_stats'] != 0) {
  599. $tmpl->setvar('index_page_stats', 1);
  600. if (!array_key_exists("total_download",$cfg))
  601. $cfg["total_download"] = 0;
  602. if (!array_key_exists("total_upload",$cfg))
  603. $cfg["total_upload"] = 0;
  604. // xfer
  605. if (($cfg['enable_xfer'] != 0) && ($cfg['xfer_realtime'] != 0)) {
  606. $tmpl->setvar('_SERVERXFERSTATS', $cfg['_SERVERXFERSTATS']);
  607. $tmpl->setvar('_TOTALXFER', $cfg['_TOTALXFER']);
  608. $tmpl->setvar('_MONTHXFER', $cfg['_MONTHXFER']);
  609. $tmpl->setvar('_WEEKXFER', $cfg['_WEEKXFER']);
  610. $tmpl->setvar('_DAYXFER', $cfg['_DAYXFER']);
  611. $tmpl->setvar('_YOURXFERSTATS', $cfg['_YOURXFERSTATS']);
  612. $tmpl->setvar('totalxfer1', @formatFreeSpace($xfer_total['total']['total'] / 1048576));
  613. $tmpl->setvar('monthxfer1', @formatFreeSpace($xfer_total['month']['total'] / 1048576));
  614. $tmpl->setvar('weekxfer1', @formatFreeSpace($xfer_total['week']['total'] / 1048576));
  615. $tmpl->setvar('dayxfer1', @formatFreeSpace($xfer_total['day']['total'] / 1048576));
  616. $xfer = Xfer::getStats();
  617. $tmpl->setvar('total2', @formatFreeSpace($xfer[$cfg["user"]]['total']['total'] / 1048576));
  618. $tmpl->setvar('month2', @formatFreeSpace($xfer[$cfg["user"]]['month']['total'] / 1048576));
  619. $tmpl->setvar('week2', @formatFreeSpace($xfer[$cfg["user"]]['week']['total'] / 1048576));
  620. $tmpl->setvar('day2', @formatFreeSpace($xfer[$cfg["user"]]['day']['total'] / 1048576));
  621. }
  622. // queue
  623. if (FluxdQmgr::isRunning()) {
  624. $tmpl->setvar('_QUEUEMANAGER', $cfg['_QUEUEMANAGER']);
  625. $tmpl->setvar('runningTransferCount', getRunningTransferCount());
  626. $tmpl->setvar('countQueuedTransfers', FluxdQmgr::countQueuedTransfers());
  627. $tmpl->setvar('limitGlobal', $cfg["fluxd_Qmgr_maxTotalTransfers"]);
  628. $tmpl->setvar('limitUser', $cfg["fluxd_Qmgr_maxUserTransfers"]);
  629. }
  630. // other
  631. $tmpl->setvar('_OTHERSERVERSTATS', $cfg['_OTHERSERVERSTATS']);
  632. $tmpl->setvar('downloadspeed1', @number_format($cfg["total_download"], 2));
  633. $tmpl->setvar('downloadspeed11', @number_format($transfers['sum']['drate'], 2));
  634. $tmpl->setvar('uploadspeed1', @number_format($cfg["total_upload"], 2));
  635. $tmpl->setvar('uploadspeed11', @number_format($transfers['sum']['rate'], 2));
  636. $tmpl->setvar('totalspeed1', @number_format($cfg["total_download"]+$cfg["total_upload"], 2));
  637. $tmpl->setvar('totalspeed11', @number_format($transfers['sum']['rate'] + $transfers['sum']['drate'], 2));
  638. $tmpl->setvar('id_connections1', $netstatConnectionsSum);
  639. $tmpl->setvar('id_connections11', $netstatConnectionsMax);
  640. $tmpl->setvar('drivespace1', $cfg['freeSpaceFormatted']);
  641. $tmpl->setvar('serverload1', $loadavgString);
  642. }
  643. // pm
  644. if (IsForceReadMsg())
  645. $tmpl->setvar('IsForceReadMsg', 1);
  646. // Graphical Bandwidth Bar
  647. if ($cfg["ui_displaybandwidthbars"] != 0) {
  648. $tmpl->setvar('ui_displaybandwidthbars', 1);
  649. tmplSetBandwidthBars();
  650. }
  651. // wget
  652. switch ($cfg["enable_wget"]) {
  653. case 2:
  654. $tmpl->setvar('enable_wget', 1);
  655. break;
  656. case 1:
  657. if ($cfg['isAdmin'])
  658. $tmpl->setvar('enable_wget', 1);
  659. }
  660. // nzbperl
  661. switch ($cfg['enable_nzbperl']) {
  662. case 2:
  663. $tmpl->setvar('enable_nzbperl', 1);
  664. break;
  665. case 1:
  666. if ($cfg['isAdmin'])
  667. $tmpl->setvar('enable_nzbperl', 1);
  668. }
  669. $tmpl->setvar('version', $cfg["version"]);
  670. $tmpl->setvar('enable_multiupload', $cfg["enable_multiupload"]);
  671. $tmpl->setvar('enable_search', $cfg["enable_search"]);
  672. $tmpl->setvar('enable_dereferrer', $cfg["enable_dereferrer"]);
  673. $tmpl->setvar('enable_sorttable', $cfg["enable_sorttable"]);
  674. $tmpl->setvar('enable_bulkops', $cfg["enable_bulkops"]);
  675. $tmpl->setvar('ui_displaylinks', $cfg["ui_displaylinks"]);
  676. $tmpl->setvar('drivespace', $cfg['driveSpace']);
  677. $tmpl->setvar('freeSpaceFormatted', $cfg['freeSpaceFormatted']);
  678. $tmpl->setvar('file_types_label', $cfg['file_types_label']);
  679. $tmpl->setloop('Engine_List', tmplSetSearchEngineDDL($cfg["searchEngine"]));
  680. //
  681. $tmpl->setvar('_ABOUTTODELETE', $cfg['_ABOUTTODELETE']);
  682. $tmpl->setvar('_SELECTFILE', $cfg['_SELECTFILE']);
  683. $tmpl->setvar('_UPLOAD', $cfg['_UPLOAD']);
  684. $tmpl->setvar('_MULTIPLE_UPLOAD', $cfg['_MULTIPLE_UPLOAD']);
  685. $tmpl->setvar('_URLFILE', $cfg['_URLFILE']);
  686. $tmpl->setvar('_GETFILE', $cfg['_GETFILE']);
  687. $tmpl->setvar('_SEARCH', $cfg['_SEARCH']);
  688. $tmpl->setvar('_LINKS', $cfg['_LINKS']);
  689. $tmpl->setvar('_DOWNLOADSPEED', $cfg['_DOWNLOADSPEED']);
  690. $tmpl->setvar('_UPLOADSPEED', $cfg['_UPLOADSPEED']);
  691. $tmpl->setvar('_TOTALSPEED', $cfg['_TOTALSPEED']);
  692. $tmpl->setvar('_ID_CONNECTIONS', $cfg['_ID_CONNECTIONS']);
  693. $tmpl->setvar('_SERVERLOAD', $cfg['_SERVERLOAD']);
  694. $tmpl->setvar('_ONLINE', $cfg['_ONLINE']);
  695. $tmpl->setvar('_OFFLINE', $cfg['_OFFLINE']);
  696. $tmpl->setvar('_ID_IMAGES', $cfg['_ID_IMAGES']);
  697. $tmpl->setvar('_DIRECTORYLIST', $cfg['_DIRECTORYLIST']);
  698. $tmpl->setvar('_DRIVESPACEUSED', $cfg['_DRIVESPACEUSED']);
  699. $tmpl->setvar('_ADMINMESSAGE', $cfg['_ADMINMESSAGE']);
  700. $tmpl->setvar('_DRIVESPACE', $cfg['_DRIVESPACE']);
  701. //
  702. tmplSetTitleBar($cfg["pagetitle"]);
  703. tmplSetDriveSpaceBar();
  704. tmplSetIidVars();
  705. // parse template
  706. $tmpl->pparse();
  707. ?>