123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735 |
- <?php
- if ($system->checkForRight('ONLINE')) {
- $alter_conf = $ubillingConfig->getAlter();
- $hp_mode = $alter_conf['ONLINE_HP_MODE'];
- if ($hp_mode) {
- /**
- * Renders user list JQuery DataTables container
- *
- * @global array $alter_conf
- *
- * @return string
- */
- function renderUserListContainer() {
- global $alter_conf;
- $saveState = 'false';
- if (isset($alter_conf['ONLINE_SAVE_STATE'])) {
- if ($alter_conf['ONLINE_SAVE_STATE']) {
- $saveState = 'true';
- }
- }
- $hp_mode = $alter_conf['ONLINE_HP_MODE'];
- $ShowContractField = false;
- if (isset($alter_conf['ONLINE_SHOW_CONTRACT_FIELD']) && $alter_conf['ONLINE_SHOW_CONTRACT_FIELD']) {
- $ShowContractField = true;
- }
- $showUserPhones = false;
- if (isset($alter_conf['ONLINE_SHOW_PHONES']) && $alter_conf['ONLINE_SHOW_PHONES']) {
- $showUserPhones = true;
- }
- $columnDefs = '';
- $showONUSignals = false;
- $showWIFISignals = false;
- if (isset($alter_conf['PON_ENABLED']) && $alter_conf['PON_ENABLED'] &&
- isset($alter_conf['ONLINE_SHOW_ONU_SIGNALS']) && $alter_conf['ONLINE_SHOW_ONU_SIGNALS']) {
- $showONUSignals = true;
- $colNum1 = (($ShowContractField and $showUserPhones) ? '5' : (($ShowContractField xor $showUserPhones) ? '4' : '3'));
- $columnDefs .= '{"targets": ' . $colNum1 . ',
- "render": function ( data, type, row ) {
- var sigColor = \'#000\';
-
- if (data > 0 || data < -27) {
- sigColor = \'#ab0000\';
- } else if (data > -27 && data < -25) {
- sigColor = \'#FF5500\';
- } else if (data == \'Offline\') {
- sigColor = \'#6500FF\';
- } else {
- sigColor = \'#005502\';
- }
-
- return \'<span style="color:\' + sigColor + \'">\' + data + \'</span>\';
- }
- } ';
- }
- if (isset($alter_conf['MTSIGMON_ENABLED']) && $alter_conf['MTSIGMON_ENABLED'] &&
- isset($alter_conf['ONLINE_SHOW_WIFI_SIGNALS']) && $alter_conf['ONLINE_SHOW_WIFI_SIGNALS']) {
- $showWIFISignals = true;
- // fuckin' XOR magic goes below this line. don't touch it(especially the parentheses) or you'll be cursed with hours of debugging
- // But to be serious - here we're trying to avoid a huge amount of "IFs" while checking the "ON" status of 3 optional columns:
- // $ShowContractField, $showUserPhones and $showONUSignals. And that's all is not just to show off with XOR or something.
- // Just because they go after each other in Online table and we need to apply some JQDT renderer function
- // for coloring only to $showWIFISignals - we need to determine certainly the number of $showWIFISignals column.
- // 1. We check, if all of 3 optional columns are "ON" - then $column2 will equal to "6". If not all of 3 optional columns are "ON" - we need to check further:
- // 2. If any 2 of 3 optional columns are "ON" and only one of those 3 is "OFF" - then $column2 will equal to "5"
- // 3. If only one of 3 optional columns is "ON" - then $column2 will equal to "4"
- // 4. Finally, if none of 3 optional columns are "ON" - then $column2 will equal to "3"
- $colNum2 = (($ShowContractField and $showUserPhones and $showONUSignals) ? '6' :
- ((($ShowContractField and $showUserPhones) xor ( $showUserPhones and $showONUSignals) xor ( $ShowContractField and $showONUSignals)) ? '5' :
- (($ShowContractField xor $showUserPhones xor $showONUSignals) ? '4' : '3')));
- $columnDefs .= (empty($columnDefs) ? '' : ', ');
- $columnDefs .= '{"targets": ' . $colNum2 . ',
- "render": function ( data, type, row ) {
- var signalArr = data.split(\' / \');
- var signal = \'\';
-
- if (1 in signalArr) {
- signal = (parseInt(signalArr[0]) > parseInt(signalArr[1])) ? signalArr[1] : signalArr[0];
- } else {
- signal = signalArr[0];
- }
-
- var sigColor = \'#000\';
-
- if (signal < -79) {
- sigColor = \'#ab0000\';
- } else if (signal > -80 && signal < -74) {
- sigColor = \'#FF5500\';
- } else {
- sigColor = \'#005502\';
- }
-
- return \'<span style="color:\' + sigColor + \'">\' + data + \'</span>\';
- }
- }, ';
- }
- $showLastFeeCharge = false;
- if (isset($alter_conf['ONLINE_SHOW_LAST_FEECHARGE']) && $alter_conf['ONLINE_SHOW_LAST_FEECHARGE']) {
- $showLastFeeCharge = true;
- }
- $columnDefs = '"columnDefs": [ ' . $columnDefs . '], ';
- //alternate center styling
- $alternateStyle = '';
- if (isset($alter_conf['ONLINE_ALTERNATE_VIEW'])) {
- if ($alter_conf['ONLINE_ALTERNATE_VIEW']) {
- $alternateStyle = wf_tag('style', false) . '#onlineusershp td { text-align:center !important; }' . wf_tag('style', true);
- }
- }
- if ($alter_conf['DN_ONLINE_DETECT']) {
- $columnFilters = '
- null, ' .
- ( ($hp_mode == 1 && $ShowContractField) ? 'null,' : '' ) .
- ' null, ' .
- ( ($hp_mode == 1 && $showUserPhones) ? 'null,' : '' ) .
- ' { "sType": "ip-address" }, ' .
- ( ($hp_mode == 1 && $showONUSignals) ? 'null, ' : '' ) .
- ( ($hp_mode == 1 && $showWIFISignals) ? 'null, ' : '' ) .
- ' null,
- null,
- null,
- { "sType": "file-size" },
- null,
- null ' .
- ( ($hp_mode == 1 && $showLastFeeCharge) ? ', null' : '' );
- } else {
- $columnFilters = '
- null, ' .
- ( ($hp_mode == 1 && $ShowContractField) ? 'null,' : '' ) .
- ' null, ' .
- ( ($hp_mode == 1 && $showUserPhones) ? 'null,' : '' ) .
- ' { "sType": "ip-address" }, ' .
- ( ($hp_mode == 1 && $showONUSignals) ? 'null, ' : '' ) .
- ( ($hp_mode == 1 && $showWIFISignals) ? 'null, ' : '' ) .
- ' null,
- null,
- { "sType": "file-size" },
- null,
- null ' .
- ( ($hp_mode == 1 && $showLastFeeCharge) ? ', null' : '' );
- }
- $dtcode = '
- <script type="text/javascript" charset="utf-8">
- jQuery.fn.dataTableExt.oSort[\'file-size-asc\'] = function(a,b) {
- var x = a.substring(0,a.length - 2);
- var y = b.substring(0,b.length - 2);
- var x_unit = (a.substring(a.length - 2, a.length) == "Mb" ?
- 1000 : (a.substring(a.length - 2, a.length) == "Gb" ? 1000000 : 1));
- var y_unit = (b.substring(b.length - 2, b.length) == "Mb" ?
- 1000 : (b.substring(b.length - 2, b.length) == "Gb" ? 1000000 : 1));
- x = parseInt( x * x_unit );
- y = parseInt( y * y_unit );
- return ((x < y) ? -1 : ((x > y) ? 1 : 0));
- };
- jQuery.fn.dataTableExt.oSort[\'file-size-desc\'] = function(a,b) {
- var x = a.substring(0,a.length - 2);
- var y = b.substring(0,b.length - 2);
- var x_unit = (a.substring(a.length - 2, a.length) == "Mb" ?
- 1000 : (a.substring(a.length - 2, a.length) == "Gb" ? 1000000 : 1));
- var y_unit = (b.substring(b.length - 2, b.length) == "Mb" ?
- 1000 : (b.substring(b.length - 2, b.length) == "Gb" ? 1000000 : 1));
- x = parseInt( x * x_unit);
- y = parseInt( y * y_unit);
- return ((x < y) ? 1 : ((x > y) ? -1 : 0));
- };
- jQuery.fn.dataTableExt.oSort[\'ip-address-asc\'] = function(a,b) {
- var m = a.split("."), x = "";
- var n = b.split("."), y = "";
- for(var i = 0; i < m.length; i++) {
- var item = m[i];
- if(item.length == 1) {
- x += "00" + item;
- } else if(item.length == 2) {
- x += "0" + item;
- } else {
- x += item;
- }
- }
- for(var i = 0; i < n.length; i++) {
- var item = n[i];
- if(item.length == 1) {
- y += "00" + item;
- } else if(item.length == 2) {
- y += "0" + item;
- } else {
- y += item;
- }
- }
- return ((x < y) ? -1 : ((x > y) ? 1 : 0));
- };
- jQuery.fn.dataTableExt.oSort[\'ip-address-desc\'] = function(a,b) {
- var m = a.split("."), x = "";
- var n = b.split("."), y = "";
- for(var i = 0; i < m.length; i++) {
- var item = m[i];
- if(item.length == 1) {
- x += "00" + item;
- } else if (item.length == 2) {
- x += "0" + item;
- } else {
- x += item;
- }
- }
- for(var i = 0; i < n.length; i++) {
- var item = n[i];
- if(item.length == 1) {
- y += "00" + item;
- } else if (item.length == 2) {
- y += "0" + item;
- } else {
- y += item;
- }
- }
- return ((x < y) ? 1 : ((x > y) ? -1 : 0));
- };
- $(document).ready(function() {
- $(\'#onlineusershp\').dataTable( {
- ' . $columnDefs . '
- "oLanguage": {
- "sLengthMenu": "' . __('Show') . ' _MENU_",
- "sZeroRecords": "' . __('Nothing found') . '",
- "sInfo": "' . __('Showing') . ' _START_ ' . __('to') . ' _END_ ' . __('of') . ' _TOTAL_ ' . __('users') . '",
- "sInfoEmpty": "' . __('Showing') . ' 0 ' . __('to') . ' 0 ' . __('of') . ' 0 ' . __('users') . '",
- "sInfoFiltered": "(' . __('Filtered') . ' ' . __('from') . ' _MAX_ ' . __('Total') . ')",
- "sSearch": "' . __('Search') . '",
- "sProcessing": "' . __('Processing') . '...",
- "oPaginate": {
- "sFirst": "' . __('First') . '",
- "sPrevious": "' . __('Previous') . '",
- "sNext": "' . __('Next') . '",
- "sLast": "' . __('Last') . '"
- },
- },
- "aoColumns": [
- ' . $columnFilters . '
- ],
- "bPaginate": true,
- "bLengthChange": true,
- "bFilter": true,
- "bSort": true,
- "bInfo": true,
- "bAutoWidth": false,
- "bProcessing": true,
- "iDisplayLength": 50,
- "sAjaxSource": \'?module=online&ajax\',
- "bDeferRender": true,
- "bJQueryUI": true,
- "pagingType": "full_numbers",
- "lengthMenu": [[10, 25, 50, 100, 200, -1], [10, 25, 50, 100, 200, "' . __('All') . '"]],
- "bStateSave": ' . $saveState . '
- } );
- } );
- </script>
- ';
- $customStyling = '
- <style>
- .dataTable tr {
- height: 33px; !important;
- min-height: 33px; !important;
- }
- .dataTable td th {
- vertical-align: middle; !important;
- }
-
- .dataTable img {
- vertical-align: middle; !important;
- width:15px; !important;
- display: inline; !important;
- float:left; !important;
- }
- </style>';
- $result = $dtcode;
- $result .= $customStyling;
- $result .= wf_tag('table', false, 'display compact', 'width="100%" id="onlineusershp"');
- //dn activity check
- if ($alter_conf['DN_ONLINE_DETECT']) {
- $onlineCells = wf_TableCell(__('Users online'));
- } else {
- $onlineCells = '';
- }
- $result .= wf_tag('thead', false);
- $result .= wf_tag('tr', false, 'row2');
- $result .= wf_TableCell(__('Full address'));
- $result .= ( ($hp_mode == 1 && $ShowContractField) ? wf_TableCell(__('Contract')) : '' );
- $result .= wf_TableCell(__('Real Name'));
- $result .= ( ($hp_mode == 1 && $showUserPhones) ? wf_TableCell(__("Phones")) : '' );
- $result .= wf_TableCell(__('IP'));
- $result .= ( ($hp_mode == 1 && $showONUSignals) ? wf_TableCell(__("ONU Signal")) : '' );
- $result .= ( ($hp_mode == 1 && $showWIFISignals) ? wf_TableCell(__("Signal") . ' WiFi') : '' );
- $result .= wf_TableCell(__('Tariff'));
- $result .= wf_TableCell(__('Active'));
- $result .= $onlineCells;
- $result .= wf_TableCell(__('Traffic'));
- $result .= wf_TableCell(__('Balance'));
- $result .= wf_TableCell(__('Credit'));
- $result .= ( ($hp_mode == 1 && $showLastFeeCharge) ? wf_TableCell(__("Last fee charge")) : '' );
- $result .= wf_tag('tr', true);
- $result .= wf_tag('thead', true);
- $result .= wf_tag('table', true);
- $result .= $alternateStyle;
- return ($result);
- }
- /**
- * Renders json data for user list. Manual HTML assebly instead of astral calls - for performance reasons.
- *
- * @global array $alter_conf
- *
- * @return string
- */
- function zb_AjaxOnlineDataSourceSafe() {
- global $alter_conf;
- $ubCache = new UbillingCache();
- $ishimuraOption = MultiGen::OPTION_ISHIMURA;
- $ishimuraTable = MultiGen::NAS_ISHIMURA;
- $additionalTraffic = array();
- if (@$alter_conf[$ishimuraOption]) {
- $query_hideki = "SELECT `login`,`D0`,`U0` from `" . $ishimuraTable . "` WHERE `month`='" . date("n") . "' AND `year`='" . curyear() . "'";
- $dataHideki = simple_queryall($query_hideki);
- if (!empty($dataHideki)) {
- foreach ($dataHideki as $io => $each) {
- $additionalTraffic[$each['login']] = $each['D0'] + $each['U0'];
- }
- }
- }
- if (@$alter_conf[OphanimFlow::OPTION_ENABLED]) {
- $ophanimFlow = new OphanimFlow();
- $ophTraf = $ophanimFlow->getAllUsersAggrTraff();
- if (!empty($ophTraf)) {
- foreach ($ophTraf as $ophLogin => $ophBytes) {
- if (isset($additionalTraffic[$ophLogin])) {
- $additionalTraffic[$ophLogin] += $ophBytes;
- } else {
- $additionalTraffic[$ophLogin] = $ophBytes;
- }
- }
- }
- }
-
- $allcontracts = array();
- $allcontractdates = array();
- $ShowContractField = false;
- $ShowContractDate = false;
- if (isset($alter_conf['ONLINE_SHOW_CONTRACT_FIELD']) && $alter_conf['ONLINE_SHOW_CONTRACT_FIELD']) {
- $ShowContractField = true;
- if (isset($alter_conf['ONLINE_SHOW_CONTRACT_DATE']) && $alter_conf['ONLINE_SHOW_CONTRACT_DATE']) {
- $ShowContractDate = true;
- }
- }
- if ($ShowContractField) {
- if ($ShowContractDate) {
- $query = "SELECT `contracts`.*, `contractdates`.`date` AS `contractdate`
- FROM `contracts`
- LEFT JOIN `contractdates` ON `contractdates`.`contract` = `contracts`.`contract`;
- ";
- } else {
- $query = "SELECT * FROM `contracts`;";
- }
- $tmpContracts = simple_queryall($query);
- if (!empty($tmpContracts)) {
- foreach ($tmpContracts as $io => $eachcontract) {
- $allcontracts[$eachcontract['login']] = $eachcontract['contract'];
- if ($ShowContractDate) {
- $allcontractdates[$eachcontract['login']] = $eachcontract['contractdate'];
- }
- }
- }
- }
- // getting user notes and adcomments to show
- $showUserNotes = false;
- $adCommentsON = false;
- if (isset($alter_conf['ONLINE_SHOW_USERNOTES']) && $alter_conf['ONLINE_SHOW_USERNOTES']) {
- $showUserNotes = true;
- if (isset($alter_conf['ADCOMMENTS_ENABLED']) && $alter_conf['ADCOMMENTS_ENABLED']) {
- $adCommentsON = true;
- $adcomments = new ADcomments('USERNOTES');
- }
- // collecting user notes
- $query = "SELECT * from `notes`";
- $tmpUserNotes = simple_queryall($query);
- if (!empty($tmpUserNotes)) {
- foreach ($tmpUserNotes as $io => $eachUN) {
- $allUserNotes[$eachUN['login']]['note'] = (empty($eachUN['note'])) ? '' : '( ' . $eachUN['note'] . ' )';
- $allUserNotes[$eachUN['login']]['adcomment'] = '';
- }
- }
- // collecting user adcomments
- $allAdComments = array();
- if ($adCommentsON) {
- // getting all adcomments for USERNOTES scope
- $allAdComments = $adcomments->getScopeItemsCommentsAll();
- if (!empty($allAdComments)) {
- foreach ($allAdComments as $eachLogin => $eachData) {
- $adCommentsCount = count($eachData);
- if (!isset($allUserNotes[$eachLogin])) {
- $allUserNotes[$eachLogin]['note'] = '';
- }
- if (empty($allUserNotes[$eachLogin]['note'])) {
- $adCommentsLink = wf_nbsp() . wf_Link('?module=notesedit&username=' . $eachLogin, __('Additional comments') . ':' . wf_nbsp(2) . $adCommentsCount);
- } else {
- $adCommentsLink = wf_nbsp() . wf_Link('?module=notesedit&username=' . $eachLogin, wf_tag('sup') . $adCommentsCount . wf_tag('sup', true));
- }
- $allUserNotes[$eachLogin]['adcomment'] = $adCommentsLink;
- }
- }
- }
- }
- // get users's ONU and WIFI signal level
- $allONUSignals = array();
- $allWiFiSignals = array();
- $showONUSignals = false;
- $showWIFISignals = false;
- if (isset($alter_conf['PON_ENABLED']) && $alter_conf['PON_ENABLED'] &&
- isset($alter_conf['ONLINE_SHOW_ONU_SIGNALS']) && $alter_conf['ONLINE_SHOW_ONU_SIGNALS']) {
- $showONUSignals = true;
- $allONUSignals = PONizer::getAllONUSignals();
- }
- if (isset($alter_conf['MTSIGMON_ENABLED']) && $alter_conf['MTSIGMON_ENABLED'] &&
- isset($alter_conf['ONLINE_SHOW_WIFI_SIGNALS']) && $alter_conf['ONLINE_SHOW_WIFI_SIGNALS']) {
- $showWIFISignals = true;
- $WiFiSigmon = new MTsigmon();
- $allWiFiSignals = $WiFiSigmon->getAllWiFiSignals();
- }
- $allFees = array();
- $showLastFeeCharge = false;
- if (isset($alter_conf['ONLINE_SHOW_LAST_FEECHARGE']) && $alter_conf['ONLINE_SHOW_LAST_FEECHARGE']) {
- $showLastFeeCharge = true;
- $allFees = $ubCache->get('STG_LAST_FEE_CHARGE');
- // yep, just trying to sustain legacy
- if (empty($allFees)) {
- $allFees = $ubCache->get('STG_FEE_CHARGE');
- }
- }
- $showUserPhones = false;
- $allUserPhones = array();
- if (isset($alter_conf['ONLINE_SHOW_PHONES']) && $alter_conf['ONLINE_SHOW_PHONES']) {
- $showUserPhones = true;
- $allUserPhones = zb_GetAllOnlineTabPhones();
- }
- $query = "SELECT * FROM `users`";
- $query_fio = "SELECT * from `realname`";
- $allusers = simple_queryall($query);
- $allfioz = simple_queryall($query_fio);
- $fioz = zb_UserGetAllRealnames();
- $detect_address = zb_AddressGetFulladdresslist();
- $ucount = 0;
- $deadUsers = array();
- $displayFreezeFlag = (@$alter_conf['ONLINE_SHOW_FREEZE']) ? true : false;
- //alternate view of online module
- $addrDelimiter = '';
- if (isset($alter_conf['ONLINE_ALTERNATE_VIEW'])) {
- if ($alter_conf['ONLINE_ALTERNATE_VIEW']) {
- $addrDelimiter = wf_tag('br');
- }
- }
- //hide dead users array
- if ($alter_conf['DEAD_HIDE']) {
- if (!empty($alter_conf['DEAD_TAGID'])) {
- $tagDead = vf($alter_conf['DEAD_TAGID'], 3);
- $query_dead = "SELECT `login`,`tagid` from `tags` WHERE `tagid`='" . $tagDead . "'";
- $alldead = simple_queryall($query_dead);
- if (!empty($alldead)) {
- foreach ($alldead as $idead => $eachDead) {
- $deadUsers[$eachDead['login']] = $eachDead['tagid'];
- }
- }
- }
- }
- $hidePictTitles = false;
- if (isset($alter_conf['ONLINE_HIDE_PICT_TITLES']) && $alter_conf['ONLINE_HIDE_PICT_TITLES']) {
- $hidePictTitles = true;
- }
- $jsonAAData = array();
- if (!empty($allusers)) {
- $totalusers = sizeof($allusers);
- foreach ($allusers as $io => $eachuser) {
- $tinet = 0;
- $ucount++;
- $cash = $eachuser['Cash'];
- $credit = $eachuser['Credit'];
- for ($classcounter = 0; $classcounter <= 9; $classcounter++) {
- $dc = 'D' . $classcounter . '';
- $uc = 'U' . $classcounter . '';
- $tinet = $tinet + ($eachuser[$dc] + $eachuser[$uc]);
- }
- //ishimura and ophanim traffic mixing
- $currentAdditionalTraff = (isset($additionalTraffic[$eachuser['login']])) ? $additionalTraffic[$eachuser['login']] : 0;
- $tinet = $tinet + $currentAdditionalTraff;
- $act = '<img src=skins/icon_active.gif>' . (($hidePictTitles) ? '' : __('Yes'));
- //finance check
- if ($cash < '-' . $credit) {
- $act = '<img src=skins/icon_inactive.gif>' . (($hidePictTitles) ? '' : __('No'));
- }
- if ($displayFreezeFlag) {
- if (@$alter_conf['ONLINE_SHOW_FREEZE_LAT']) {
- $act .= $eachuser['Passive'] ? ' <img src=skins/icon_passive.gif>' . date('Y-m-d', $eachuser['LastActivityTime']) : '';
- } else {
- $act .= $eachuser['Passive'] ? ' <img src=skins/icon_passive.gif>' . (($hidePictTitles) ? '' : __('Freezed')) : '';
- }
- }
- //online activity check
- if ($alter_conf['DN_ONLINE_DETECT']) {
- $onlineFlag = '<img src=skins/icon_nostar.gif> ' . (($hidePictTitles) ? '' : __('No'));
- if (file_exists(DATA_PATH . 'dn/' . $eachuser['login'])) {
- $onlineFlag = '<img src=skins/icon_star.gif> ' . (($hidePictTitles) ? '' : __('Yes'));
- }
- } else {
- $onlineFlag = '';
- }
- @$clearuseraddress = $detect_address[$eachuser['login']];
- //additional finance links
- if ($alter_conf['FAST_CASH_LINK']) {
- $fastcashlink = ' <a href=?module=addcash&username=' . $eachuser['login'] . '#cashfield><img src=skins/icon_dollar_16.gif title=' . __('Money') . ' border=0></a> ';
- } else {
- $fastcashlink = '';
- }
- $onuSignal = '';
- $wifiSignal = '';
- $feeCharge = '';
- $userPhones = '';
- if ($showONUSignals and isset($allONUSignals[$eachuser['login']])) {
- $onuSignal = $allONUSignals[$eachuser['login']];
- $onuSignal = preg_replace("#[^a-z0-9A-Z\-_\.\/]#Uis", '', $onuSignal);
- }
- if ($showWIFISignals and isset($allWiFiSignals[$eachuser['login']])) {
- $wifiSignal = $allWiFiSignals[$eachuser['login']];
- $wifiSignal = preg_replace("#[^a-z0-9A-Z\-_\.\/]#Uis", '', $wifiSignal);
- }
- if ($showLastFeeCharge and isset($allFees[$eachuser['login']])) {
- // legacy, legacy, legacy, legacy...
- if (isset($allFees[$eachuser['login']]['balance_to']) and isset($allFees[$eachuser['login']]['balance_from'])) {
- $feeCharge = $allFees[$eachuser['login']]['max_date'] . '<br />' . ($allFees[$eachuser['login']]['balance_to'] - $allFees[$eachuser['login']]['balance_from']);
- } else {
- $feeCharge = $allFees[$eachuser['login']]['max_date'] . '<br />' . $allFees[$eachuser['login']]['summ'];
- }
- }
- if ($showUserPhones and isset($allUserPhones[$eachuser['login']])) {
- $userPhones = $allUserPhones[$eachuser['login']];
- }
- if (!$alter_conf['DEAD_HIDE']) {
- $jsonItem = array();
- $jsonItem[] = '<a href=?module=traffstats&username=' . $eachuser['login'] . '><img src=skins/icon_stats_16.gif border=0 title=' . __('Stats') . '></a> <a href=?module=userprofile&username=' . $eachuser['login'] . '><img src=skins/icon_user_16.gif border=0 title=' . __('Profile') . '></a> ' . $fastcashlink . $addrDelimiter . $clearuseraddress;
- if ($ShowContractField) {
- $jsonItem[] = @$allcontracts[$eachuser['login']] . (($ShowContractDate) ? wf_tag('br') . @$allcontractdates[$eachuser['login']] : '');
- }
- $jsonItem[] = @$fioz[$eachuser['login']] . (($showUserNotes and isset($allUserNotes[$eachuser['login']]['note'])) ? wf_delimiter(0) . $allUserNotes[$eachuser['login']]['note'] . $allUserNotes[$eachuser['login']]['adcomment'] : '');
- if ($showUserPhones) {
- $jsonItem[] = $userPhones;
- }
- $jsonItem[] = $eachuser['IP'];
- if ($showONUSignals) {
- $jsonItem[] = $onuSignal;
- }
- if ($showWIFISignals) {
- $jsonItem[] = $wifiSignal;
- }
- $jsonItem[] = $eachuser['Tariff'];
- $jsonItem[] = $act;
- if (!empty($onlineFlag)) {
- $jsonItem[] = $onlineFlag;
- }
- $jsonItem[] = zb_TraffToGb($tinet);
- $jsonItem[] = "" . round($eachuser['Cash'], 2);
- $jsonItem[] = "" . round($eachuser['Credit'], 2);
- if ($showLastFeeCharge) {
- $jsonItem[] = $feeCharge;
- }
- $jsonAAData[] = $jsonItem;
- } else {
- if (!isset($deadUsers[$eachuser['login']])) {
- $jsonItem = array();
- $jsonItem[] = '<a href=?module=traffstats&username=' . $eachuser['login'] . '><img src=skins/icon_stats_16.gif border=0 title=' . __('Stats') . '></a> <a href=?module=userprofile&username=' . $eachuser['login'] . '><img src=skins/icon_user_16.gif border=0 title=' . __('Profile') . '></a> ' . $fastcashlink . $clearuseraddress;
- if ($ShowContractField) {
- $jsonItem[] = $allcontracts[$eachuser['login']] . ( ($ShowContractDate) ? wf_tag('br') . $allcontractdates[$eachuser['login']] : '' );
- }
- $jsonItem[] = @$fioz[$eachuser['login']] . (($showUserNotes and isset($allUserNotes[$eachuser['login']]['note'])) ? wf_delimiter(0) . $allUserNotes[$eachuser['login']]['note'] . $allUserNotes[$eachuser['login']]['adcomment'] : '');
- if ($showUserPhones) {
- $jsonItem[] = $userPhones;
- }
- $jsonItem[] = $eachuser['IP'];
- if ($showONUSignals) {
- $jsonItem[] = $onuSignal;
- }
- if ($showWIFISignals) {
- $jsonItem[] = $wifiSignal;
- }
- $jsonItem[] = $eachuser['Tariff'];
- $jsonItem[] = $act;
- if (!empty($onlineFlag)) {
- $jsonItem[] = $onlineFlag;
- }
- $jsonItem[] = zb_TraffToGb($tinet);
- $jsonItem[] = "" . round($eachuser['Cash'], 2);
- $jsonItem[] = "" . round($eachuser['Credit'], 2);
- if ($showLastFeeCharge) {
- $jsonItem[] = $feeCharge;
- }
- $jsonAAData[] = $jsonItem;
- }
- }
- }
- }
- /**
- Prevail, the time has come
- Crush the enemy, one by one
- Prevail, like a venomous snake
- Ready to strike and dominate
- Prevail, we conquer as one
- Pound the enemy, 'till it's done
- Prevail!
- */
- $result = array("aaData" => $jsonAAData);
- return(json_encode($result));
- }
- // Ajax data source display
- if (isset($_GET['ajax'])) {
- if ($hp_mode) {
- //default rendering
- if ($hp_mode == 1) {
- die(zb_AjaxOnlineDataSourceSafe());
- }
- //fast with caching, for huge databases.
- if ($hp_mode == 2) {
- $defaultJsonCacheTime = 600;
- $onlineJsonCache = new UbillingCache();
- $fastJsonReply = $onlineJsonCache->getCallback('HPONLINEJSON', function () {
- return (zb_AjaxOnlineDataSourceSafe());
- }, $defaultJsonCacheTime);
- die($fastJsonReply);
- }
- }
- }
- show_window(__('Users'), renderUserListContainer());
- } else {
- show_error(__('This module is disabled'));
- }
- } else {
- show_error(__('Access denied'));
- }
|