main.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <?php
  2. // Check system settiongs
  3. if ((!isset($_SESSION['VERSION'])) && (!defined('NO_AUTH_REQUIRED'))) {
  4. session_destroy();
  5. header("Location: /login/");
  6. exit;
  7. }
  8. // Check user session
  9. if ((!isset($_SESSION['user'])) && (!defined('NO_AUTH_REQUIRED'))) {
  10. $_SESSION['request_uri'] = $_SERVER['REQUEST_URI'];
  11. header("Location: /login/");
  12. exit;
  13. }
  14. if (isset($_SESSION['user'])) {
  15. require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$_SESSION['language'].'.php');
  16. }
  17. /**
  18. * Translates string by a given key in first parameter to current session language. Works like sprintf
  19. * @global array $LANG Associative array of language pharses
  20. * @return string Translated string
  21. * @see _translate()
  22. */
  23. function __() {
  24. $args = func_get_args();
  25. array_unshift($args,$_SESSION['language']);
  26. return call_user_func_array("_translate",$args);
  27. }
  28. /**
  29. * Translates string to given language in first parameter, key given in second parameter (dynamically loads required language). Works like spritf from second parameter
  30. * @global array $LANG Associative array of language pharses
  31. * @return string Translated string
  32. */
  33. function _translate() {
  34. global $LANG;
  35. $args = func_get_args();
  36. $l = $args[0];
  37. if (!$l) return 'NO LANGUAGE DEFINED';
  38. $key = $args[1];
  39. if (!isset($LANG[$l])) {
  40. require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$l.'.php');
  41. }
  42. if (!isset($LANG[$l][$key])) {
  43. $text=$key;
  44. } else {
  45. $text=$LANG[$l][$key];
  46. }
  47. array_shift($args);
  48. if (count($args)>1) {
  49. $args[0] = $text;
  50. return call_user_func_array("sprintf",$args);
  51. } else {
  52. return $text;
  53. }
  54. }
  55. define('VESTA_CMD', '/usr/bin/sudo /usr/local/vesta/bin/');
  56. $i = 0;
  57. if (isset($_SESSION['language'])) {
  58. switch ($_SESSION['language']) {
  59. case 'ro':
  60. setlocale(LC_ALL, 'ro_RO.utf8');
  61. break;
  62. case 'ru':
  63. setlocale(LC_ALL, 'ru_RU.utf8');
  64. break;
  65. case 'ua':
  66. setlocale(LC_ALL, 'uk_UA.utf8');
  67. break;
  68. case 'es':
  69. setlocale(LC_ALL, 'es_ES.utf8');
  70. break;
  71. default:
  72. setlocale(LC_ALL, 'en_US.utf8');
  73. }
  74. }
  75. if (isset($_SESSION['user'])) {
  76. $user = $_SESSION['user'];
  77. }
  78. if (isset($_SESSION['look']) && ( $_SESSION['look'] != 'admin' )) {
  79. $user = $_SESSION['look'];
  80. }
  81. function check_error($return_var) {
  82. if ( $return_var > 0 ) {
  83. header("Location: /error/");
  84. exit;
  85. }
  86. }
  87. function check_return_code($return_var,$output) {
  88. if ($return_var != 0) {
  89. $error = implode('<br>', $output);
  90. if (empty($error)) $error = __('Error code:',$return_var);
  91. $_SESSION['error_msg'] = $error;
  92. }
  93. }
  94. function top_panel($user, $TAB) {
  95. global $panel;
  96. $command = VESTA_CMD."v-list-user '".$user."' 'json'";
  97. exec ($command, $output, $return_var);
  98. if ( $return_var > 0 ) {
  99. header("Location: /error/");
  100. exit;
  101. }
  102. $panel = json_decode(implode('', $output), true);
  103. unset($output);
  104. if ( $user == 'admin' ) {
  105. include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/panel.html');
  106. } else {
  107. include($_SERVER['DOCUMENT_ROOT'].'/templates/user/panel.html');
  108. }
  109. }
  110. function humanize_time($usage) {
  111. if ( $usage > 60 ) {
  112. $usage = $usage / 60;
  113. if ( $usage > 24 ) {
  114. $usage = $usage / 24;
  115. $usage = number_format($usage);
  116. if ( $usage == 1 ) {
  117. $usage = $usage." ".__('day');
  118. } else {
  119. $usage = $usage." ".__('days');
  120. }
  121. } else {
  122. $usage = number_format($usage);
  123. if ( $usage == 1 ) {
  124. $usage = $usage." ".__('hour');
  125. } else {
  126. $usage = $usage." ".__('hours');
  127. }
  128. }
  129. } else {
  130. if ( $usage == 1 ) {
  131. $usage = $usage." ".__('minute');
  132. } else {
  133. $usage = $usage." ".__('minutes');
  134. }
  135. }
  136. return $usage;
  137. }
  138. function humanize_usage($usage) {
  139. if ( $usage > 1024 ) {
  140. $usage = $usage / 1024;
  141. if ( $usage > 1024 ) {
  142. $usage = $usage / 1024 ;
  143. if ( $usage > 1024 ) {
  144. $usage = $usage / 1024 ;
  145. $usage = number_format($usage, 2);
  146. $usage = $usage."".__('pb');
  147. } else {
  148. $usage = number_format($usage, 2);
  149. $usage = $usage."".__('tb');
  150. }
  151. } else {
  152. $usage = number_format($usage, 2);
  153. $usage = $usage."".__('gb');
  154. }
  155. } else {
  156. $usage = $usage."".__('mb');
  157. }
  158. return $usage;
  159. }
  160. function get_percentage($used,$total) {
  161. if (!isset($total)) $total = 0;
  162. if (!isset($used)) $used = 0;
  163. if ( $total == 0 ) {
  164. $percent = 0;
  165. } else {
  166. $percent = $used / $total;
  167. $percent = $percent * 100;
  168. $percent = number_format($percent, 0, '', '');
  169. if ( $percent > 100 ) {
  170. $percent = 100;
  171. }
  172. if ( $percent < 0 ) {
  173. $percent = 0;
  174. }
  175. }
  176. return $percent;
  177. }
  178. function send_email($to,$subject,$mailtext,$from) {
  179. $charset = "utf-8";
  180. $to = '<'.$to.'>';
  181. $boundary = '--' . md5( uniqid("myboundary") );
  182. $priorities = array( '1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)' );
  183. $priority = $priorities[2];
  184. $ctencoding = "8bit";
  185. $sep = chr(13) . chr(10);
  186. $disposition = "inline";
  187. $subject = "=?$charset?B?".base64_encode($subject)."?=";
  188. $header = "From: $from \nX-Priority: $priority\nCC:\n";
  189. $header .= "Mime-Version: 1.0\nContent-Type: text/plain; charset=$charset \n";
  190. $header .= "Content-Transfer-Encoding: $ctencoding\nX-Mailer: Php/libMailv1.3\n";
  191. $message = $mailtext;
  192. mail($to, $subject, $message, $header);
  193. }
  194. function display_error_block() {
  195. if (!empty($_SESSION['error_msg'])) {
  196. echo '
  197. <div>
  198. <script type="text/javascript">
  199. $(function() {
  200. $( "#dialog:ui-dialog" ).dialog( "destroy" );
  201. $( "#dialog-message" ).dialog({
  202. modal: true,
  203. buttons: {
  204. Ok: function() {
  205. $( this ).dialog( "close" );
  206. }
  207. }
  208. });
  209. });
  210. </script>
  211. <div id="dialog-message" title="">
  212. <p>'. $_SESSION['error_msg'] .'</p>
  213. </div>
  214. </div>'."\n";
  215. unset($_SESSION['error_msg']);
  216. }
  217. }
  218. ?>