main.php 6.6 KB

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