コード例 #1
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
 public function render()
 {
     $cells = wf_TableCell(__('ID'));
     $cells .= wf_TableCell(__('Date'));
     $cells .= wf_TableCell(__('Text'));
     $cells .= wf_TableCell(__('Processed'));
     $cells .= wf_TableCell(__('Actions'));
     $rows = wf_TableRow($cells, 'row1');
     if (!empty($this->alltickets)) {
         foreach ($this->alltickets as $io => $each) {
             $cells = wf_TableCell($each['id']);
             $cells .= wf_TableCell($each['date']);
             if (strlen($each['text']) > 140) {
                 $textPreview = mb_substr(strip_tags($each['text']), 0, 140, 'utf-8') . '...';
             } else {
                 $textPreview = strip_tags($each['text']);
             }
             $cells .= wf_TableCell($textPreview);
             $cells .= wf_TableCell(web_bool_led($each['status']));
             $cells .= wf_TableCell(wf_Link('?module=ticketing&showticket=' . $each['id'], __('Show'), false, 'ubButton'));
             $rows .= wf_TableRow($cells, 'row3');
         }
     }
     $result = wf_TableBody($rows, '100%', 0, 'sortable');
     return $result;
 }
コード例 #2
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
 /**
  * Renders list of available SMS in queue with some controls
  * 
  * @return string
  */
 public function render()
 {
     $result = '';
     if (!empty($this->queue)) {
         $cells = wf_TableCell(__('Date'));
         $cells .= wf_TableCell(__('Mobile'));
         $cells .= wf_TableCell(__('Actions'));
         $rows = wf_TableRow($cells, 'row1');
         foreach ($this->queue as $io => $each) {
             $cells = wf_TableCell($each['date']);
             $cells .= wf_TableCell($each['number']);
             $actLinks = wf_modalAuto(wf_img('skins/icon_search_small.gif', __('Preview')), __('Preview'), $this->smsPreview($each), '');
             $actLinks .= wf_JSAlert('?module=tsmsqueue&deletesms=' . $each['filename'], web_delete_icon(), __('Are you serious'));
             $cells .= wf_TableCell($actLinks);
             $rows .= wf_TableRow($cells, 'row3');
         }
         $result = wf_TableBody($rows, '100%', 0, 'sortable');
     } else {
         $result .= wf_tag('span', false, 'alert_info');
         $result .= wf_tag('center', false);
         $result .= __('Nothing found');
         $result .= wf_tag('center', true);
         $result .= wf_tag('span', true);
     }
     return $result;
 }
コード例 #3
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
 public function render()
 {
     $cells = wf_TableCell(__('Login'));
     $cells .= wf_TableCell(__('Address'));
     $cells .= wf_TableCell(__('Real Name'));
     $cells .= wf_TableCell(__('IP'));
     $cells .= wf_TableCell(__('Tariff'));
     $cells .= wf_TableCell(__('Traffic'));
     $cells .= wf_TableCell(__('Actions'));
     $rows = wf_TableRow($cells, 'row1');
     if (!empty($this->data)) {
         $allrealnames = zb_UserGetAllRealnames();
         $alladdress = zb_AddressGetFulladdresslist();
         foreach ($this->data as $io => $each) {
             $loginLink = wf_Link("?module=userprofile&username="******"' . $each['traffic'] . '"');
             $actionLinks = wf_Link('?module=pl_traffdetails&username='******'login'], wf_img('skins/icon_stats.gif', __('Detailed stats')), false, '');
             $actionLinks .= wf_link('?module=dstatedit&username='******'login'], web_edit_icon(), false, '');
             $cells .= wf_TableCell($actionLinks);
             $rows .= wf_TableRow($cells, 'row3');
         }
     }
     $result = wf_TableBody($rows, '100%', '0', 'sortable');
     return $result;
 }
コード例 #4
0
ファイル: api.usertags.php プロジェクト: l1ght13aby/Ubilling
/**
 * Render available tag types list with all needed controls
 * 
 * @return string
 */
function stg_show_tagtypes()
{
    $messages = new UbillingMessageHelper();
    $query = "SELECT * from `tagtypes` ORDER BY `id` ASC";
    $alltypes = simple_queryall($query);
    $cells = wf_TableCell(__('ID'));
    $cells .= wf_TableCell(__('Color'));
    $cells .= wf_TableCell(__('Priority'));
    $cells .= wf_TableCell(__('Text'));
    $cells .= wf_TableCell(__('Actions'));
    $rows = wf_TableRow($cells, 'row1');
    if (!empty($alltypes)) {
        foreach ($alltypes as $io => $eachtype) {
            $eachtagcolor = $eachtype['tagcolor'];
            $actions = wf_JSAlert('?module=usertags&delete=' . $eachtype['id'], web_delete_icon(), $messages->getDeleteAlert());
            $actions .= wf_JSAlert('?module=usertags&edit=' . $eachtype['id'], web_edit_icon(), $messages->getEditAlert());
            $cells = wf_TableCell($eachtype['id']);
            $cells .= wf_TableCell(wf_tag('font', false, '', 'color="' . $eachtagcolor . '"') . $eachtagcolor . wf_tag('font', true));
            $cells .= wf_TableCell($eachtype['tagsize']);
            $cells .= wf_TableCell($eachtype['tagname']);
            $cells .= wf_TableCell($actions);
            $rows .= wf_TableRow($cells, 'row3');
        }
    }
    $result = wf_TableBody($rows, '100%', 0, 'sortable');
    //construct adding form
    $inputs = wf_ColPicker('newcolor', __('Color'), '#' . rand(11, 99) . rand(11, 99) . rand(11, 99), false, '10');
    $inputs .= wf_TextInput('newtext', __('Text'), '', false, '15');
    $inputs .= web_priority_selector() . ' ';
    $inputs .= wf_HiddenInput('addnewtag', 'true');
    $inputs .= wf_Submit(__('Create'));
    $form = wf_Form("", 'POST', $inputs, 'glamour');
    $result .= $form;
    return $result;
}
コード例 #5
0
ファイル: index.php プロジェクト: nightflyza/Ubilling
 /**
  * Renders search results for used cards
  * 
  * @param int $year
  * @param string $month
  * 
  * @return void
  */
 function web_CardShowUsageByMonth($year, $month)
 {
     $month = mysql_real_escape_string($month);
     $year = mysql_real_escape_string($year);
     $query = "SELECT * from `cardbank` WHERE `usedate` LIKE '%" . $year . "-" . $month . "-%'";
     $allusedcards = simple_queryall($query);
     $allrealnames = zb_UserGetAllRealnames();
     $alladdress = zb_AddressGetFulladdresslist();
     $totalsumm = 0;
     $totalcount = 0;
     $csvdata = '';
     $tablecells = wf_TableCell(__('ID'));
     $tablecells .= wf_TableCell(__('Serial number'));
     $tablecells .= wf_TableCell(__('Cash'));
     $tablecells .= wf_TableCell(__('Usage date'));
     $tablecells .= wf_TableCell(__('Used login'));
     $tablecells .= wf_TableCell(__('Full address'));
     $tablecells .= wf_TableCell(__('Real name'));
     $tablerows = wf_TableRow($tablecells, 'row1');
     if (!empty($allusedcards)) {
         $csvdata = __('ID') . ';' . __('Serial number') . ';' . __('Cash') . ';' . __('Usage date') . ';' . __('Used login') . ';' . __('Full address') . ';' . __('Real name') . "\n";
         foreach ($allusedcards as $io => $eachcard) {
             $tablecells = wf_TableCell($eachcard['id']);
             $tablecells .= wf_TableCell($eachcard['serial']);
             $tablecells .= wf_TableCell($eachcard['cash']);
             $tablecells .= wf_TableCell($eachcard['usedate']);
             $profilelink = wf_Link("?module=userprofile&username="******"\n";
         }
     }
     if (!empty($csvdata)) {
         $exportFilename = 'exports/cardreport_' . $year . '-' . $month . '.csv';
         $csvdata = iconv('utf-8', 'windows-1251', $csvdata);
         file_put_contents($exportFilename, $csvdata);
         $exportLink = wf_Link('?module=cardreport&dloadcsv=' . base64_encode($exportFilename), wf_img('skins/excel.gif', __('Export')), false, '');
     } else {
         $exportLink = '';
     }
     $result = wf_TableBody($tablerows, '100%', '0', 'sortable');
     $result .= __('Total') . ': ' . $totalcount . ' ' . __('payments') . ', ' . __('with total amount') . ': ' . $totalsumm;
     show_window(__('Payment cards usage report') . ' ' . $exportLink, $result);
 }
コード例 #6
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
 function ts_EmployeeMonthGraphs()
 {
     $curmonth = curmonth();
     $employees = ts_GetAllEmployee();
     $month_jobs_q = "SELECT `workerid`,`jobid` from `jobs` WHERE `date` LIKE '" . $curmonth . "%'";
     $alljobs = simple_queryall($month_jobs_q);
     $jobtypes = ts_GetAllJobtypes();
     $jobdata = array();
     $result = '';
     if (!empty($employees)) {
         if (!empty($alljobs)) {
             foreach ($alljobs as $io => $eachjob) {
                 if (isset($jobdata[$eachjob['workerid']][$eachjob['jobid']])) {
                     $jobdata[$eachjob['workerid']][$eachjob['jobid']]++;
                 } else {
                     $jobdata[$eachjob['workerid']][$eachjob['jobid']] = 1;
                 }
             }
         }
         //build graphs for each employee
         if (!empty($jobdata)) {
             foreach ($jobdata as $employee => $each) {
                 $employeeName = isset($employees[$employee]) ? $employees[$employee] : __('Deleted');
                 $result .= wf_tag('h3', false) . $employeeName . wf_tag('h3', true);
                 $rows = '';
                 if (!empty($each)) {
                     foreach ($each as $jobid => $count) {
                         $cells = wf_TableCell(@$jobtypes[$jobid], '40%');
                         $cells .= wf_TableCell($count, '20%');
                         $cells .= wf_TableCell(web_bar($count, sizeof($alljobs)), '40%');
                         $rows .= wf_TableRow($cells, 'row3');
                     }
                 }
                 $result .= wf_TableBody($rows, '100%', 0);
                 $result .= wf_delimiter();
             }
         }
     }
     return $result;
 }
コード例 #7
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
 function web_UsersLister($users)
 {
     $tablecells = wf_TableCell(__('Login'));
     $tablecells .= wf_TableCell(__('Real Name'));
     $tablecells .= wf_TableCell(__('Full address'));
     $tablecells .= wf_TableCell(__('Tariff'));
     $tablecells .= wf_TableCell(__('Tariff speeds'));
     $tablecells .= wf_TableCell(__('Speed override'));
     $tablecells .= wf_TableCell(__('Actions'));
     $tablerows = wf_TableRow($tablecells, 'row1');
     if (!empty($users)) {
         $udata = array();
         $alluserdata = zb_UserGetAllStargazerData();
         $alladdress = zb_AddressGetFulladdresslist();
         $allrealnames = zb_UserGetAllRealnames();
         $allspeeds = zb_TariffGetAllSpeeds();
         if (!empty($alluserdata)) {
             foreach ($alluserdata as $ia => $eachdata) {
                 $udata[$eachdata['login']]['Tariff'] = $eachdata['Tariff'];
                 @($udata[$eachdata['login']]['Address'] = $alladdress[$eachdata['login']]);
                 @($udata[$eachdata['login']]['RealName'] = $allrealnames[$eachdata['login']]);
                 @($udata[$eachdata['login']]['NormalSpeedDown'] = $allspeeds[$eachdata['Tariff']]['speeddown']);
                 @($udata[$eachdata['login']]['NormalSpeedUp'] = $allspeeds[$eachdata['Tariff']]['speedup']);
             }
         }
         foreach ($users as $io => $eachuser) {
             $tablecells = wf_TableCell(wf_Link('?module=userprofile&username='******'login'], web_profile_icon() . ' ' . $eachuser['login']));
             $tablecells .= wf_TableCell($udata[$eachuser['login']]['RealName']);
             $tablecells .= wf_TableCell($udata[$eachuser['login']]['Address']);
             $tablecells .= wf_TableCell($udata[$eachuser['login']]['Tariff']);
             $tablecells .= wf_TableCell($udata[$eachuser['login']]['NormalSpeedDown'] . '/' . $udata[$eachuser['login']]['NormalSpeedUp']);
             $tablecells .= wf_TableCell(zb_UserGetSpeedOverride($eachuser['login']));
             $fixlink = wf_JSAlert('?module=speedcontrol&fix=' . $eachuser['login'], '<img src="skins/icon_repair.gif" title=' . __('Fix') . '>', 'Are you serious');
             $tablecells .= wf_TableCell($fixlink);
             $tablerows .= wf_TableRow($tablecells, 'row3');
         }
     }
     $result = wf_TableBody($tablerows, '100%', '0', 'sortable');
     return $result;
 }
コード例 #8
0
ファイル: api.radius.php プロジェクト: l1ght13aby/Ubilling
function web_NasTemplatesShow()
{
    $query = "SELECT * from `nastemplates`";
    $alltemplates = simple_queryall($query);
    $tablecells = wf_TableCell(__('ID'));
    $tablecells .= wf_TableCell(__('NAS'));
    $tablecells .= wf_TableCell(__('Template'));
    $tablecells .= wf_TableCell(__('Actions'));
    $tablerows = wf_TableRow($tablecells, 'row1');
    if (!empty($alltemplates)) {
        foreach ($alltemplates as $io => $eachtemplate) {
            $nasdata = zb_NasGetData($eachtemplate['nasid']);
            $tablecells = wf_TableCell($eachtemplate['id']);
            $tablecells .= wf_TableCell($eachtemplate['nasid'] . ':' . $nasdata['nasname']);
            $tablecells .= wf_TableCell('<pre>' . $eachtemplate['template'] . '</pre>');
            $actions = wf_JSAlert("?module=radiust&delete=" . $eachtemplate['id'], web_delete_icon(), 'Are you serious');
            $actions .= wf_Link("?module=radiust&edit=" . $eachtemplate['id'], web_edit_icon(), false, '');
            $tablecells .= wf_TableCell($actions);
            $tablerows .= wf_TableRow($tablecells, 'row3');
        }
    }
    $result = wf_TableBody($tablerows, '100%', '0', 'sortable');
    show_window(__('Available NAS Radius attribute templates'), $result);
}
コード例 #9
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
 function web_PhpConsoleShowTemplates()
 {
     $alltemplatekeys = zb_StorageFindKeys('PHPCONSOLETEMPLATE:');
     $tablecells = wf_TableCell(__('Template'), '80%');
     $tablecells .= wf_TableCell(__('Actions'));
     $tablerows = wf_TableRow($tablecells, 'row1');
     if (!empty($alltemplatekeys)) {
         foreach ($alltemplatekeys as $eachtemplatekey) {
             $templatearray = zb_PhpConsoleGetTemplate($eachtemplatekey['key']);
             $templatename = $templatearray['name'];
             $templatebody = $templatearray['body'];
             //show code template
             $runlink = wf_JSAlert('?module=sqlconsole&devconsole=true&runtpl=' . $eachtemplatekey['key'], $templatename, 'Insert this template into PHP console');
             $tablecells = wf_TableCell($runlink);
             $actionlinks = wf_JSAlert('?module=sqlconsole&devconsole=true&deltemplate=' . $eachtemplatekey['key'], web_delete_icon(), 'Are you serious');
             $actionlinks .= wf_Link('?module=sqlconsole&devconsole=true&edittemplate=' . $eachtemplatekey['key'], web_edit_icon());
             $tablecells .= wf_TableCell($actionlinks);
             $tablerows .= wf_TableRow($tablecells, 'row3');
         }
     }
     $createlink = __('Available code templates') . ' ' . wf_Link("?module=sqlconsole&devconsole=true&templateadd=true", wf_img("skins/icon_add.gif", __('Create')), false);
     $result = $createlink . ' ' . wf_TableBody($tablerows, '100%', '0', 'sortable');
     return $result;
 }
コード例 #10
0
ファイル: api.opayz.php プロジェクト: l1ght13aby/Ubilling
 /**
  * Renders per-payment system openpayz transaction charts
  * 
  * @return string
  */
 public function renderGraphs()
 {
     $psysdata = array();
     $gcAllData = array();
     $gcMonthData = array();
     $result = wf_Link('?module=openpayz', __('Back'), true, 'ubButton');
     if (!empty($this->allTransactions)) {
         foreach ($this->allTransactions as $io => $each) {
             $timestamp = strtotime($each['date']);
             $curMonth = curmonth();
             $date = date("Y-m-01", $timestamp);
             if (isset($psysdata[$each['paysys']][$date]['count'])) {
                 $psysdata[$each['paysys']][$date]['count']++;
                 $psysdata[$each['paysys']][$date]['summ'] = $psysdata[$each['paysys']][$date]['summ'] + $each['summ'];
             } else {
                 $psysdata[$each['paysys']][$date]['count'] = 1;
                 $psysdata[$each['paysys']][$date]['summ'] = $each['summ'];
             }
             //all time stats
             if (isset($gcAllData[$each['paysys']])) {
                 $gcAllData[$each['paysys']]++;
             } else {
                 $gcAllData[$each['paysys']] = 1;
             }
             //current month stats
             if (ispos($date, $curMonth . '-')) {
                 if (isset($gcMonthData[$each['paysys']])) {
                     $gcMonthData[$each['paysys']]++;
                 } else {
                     $gcMonthData[$each['paysys']] = 1;
                 }
             }
         }
     }
     $chartOpts = "chartArea: {  width: '90%', height: '90%' }, legend : {position: 'right'}, ";
     if (!empty($gcAllData)) {
         $gcAllPie = wf_gcharts3DPie($gcAllData, __('All time'), '400px', '400px', $chartOpts);
     } else {
         $gcAllPie = '';
     }
     if (!empty($gcMonthData)) {
         $gcMonthPie = wf_gcharts3DPie($gcMonthData, __('Current month'), '400px', '400px', $chartOpts);
     } else {
         $gcMonthPie = '';
     }
     $gcells = wf_TableCell($gcAllPie);
     $gcells .= wf_TableCell($gcMonthPie);
     $grows = wf_TableRow($gcells);
     $result .= wf_TableBody($grows, '100%', 0, '');
     if (!empty($psysdata)) {
         foreach ($psysdata as $psys => $opdate) {
             $gdata = __('Date') . ',' . __('Count') . ',' . __('Cash') . "\n";
             foreach ($opdate as $datestamp => $optrans) {
                 $gdata .= $datestamp . ',' . $optrans['count'] . ',' . $optrans['summ'] . "\n";
             }
             $result .= wf_tag('div', false, '', '');
             $result .= wf_tag('h2') . $psys . wf_tag('h2', true) . wf_delimiter();
             $result .= wf_Graph($gdata, '800', '200', false);
             $result .= wf_tag('div', true);
         }
     }
     return $result;
 }
コード例 #11
0
ファイル: index.php プロジェクト: nightflyza/Ubilling
 /**
  * Shows signup tariffs popularity  chart
  * 
  * @return void
  */
 function web_SignupGraph()
 {
     if (!wf_CheckGet(array('month'))) {
         $cmonth = curmonth();
     } else {
         $cmonth = mysql_real_escape_string($_GET['month']);
     }
     $where = "WHERE `date` LIKE '" . $cmonth . "%'";
     $alltariffnames = zb_TariffsGetAll();
     $tariffusers = zb_TariffsGetAllUsers();
     $allsignups = zb_SignupsGet($where);
     $tcount = array();
     if (!empty($allsignups)) {
         foreach ($alltariffnames as $io => $eachtariff) {
             foreach ($allsignups as $ii => $eachsignup) {
                 if (@$tariffusers[$eachsignup['login']] == $eachtariff['name']) {
                     @($tcount[$eachtariff['name']] = $tcount[$eachtariff['name']] + 1);
                 }
             }
         }
     }
     $tablecells = wf_TableCell(__('Tariff'));
     $tablecells .= wf_TableCell(__('Count'));
     $tablecells .= wf_TableCell(__('Visual'));
     $tablerows = wf_TableRow($tablecells, 'row1');
     if (!empty($tcount)) {
         foreach ($tcount as $sigtariff => $eachcount) {
             $tablecells = wf_TableCell($sigtariff);
             $tablecells .= wf_TableCell($eachcount);
             $tablecells .= wf_TableCell(web_bar($eachcount, sizeof($allsignups)), '', '', 'sorttable_customkey="' . $eachcount . '"');
             $tablerows .= wf_TableRow($tablecells, 'row3');
         }
     }
     $result = wf_TableBody($tablerows, '100%', '0', 'sortable');
     show_window(__('Tariffs report'), $result);
 }
コード例 #12
0
ファイル: api.teskman.php プロジェクト: carriercomm/Ubilling
/**
 * Returns list of expired undone tasks
 * 
 * @return string
 */
function ts_ShowLate()
{
    $allemployee = ts_GetAllEmployee();
    $alljobtypes = ts_GetAllJobtypes();
    $curyear = curyear();
    $curmonth = date("m");
    $curdate = curdate();
    if ($curmonth != 1 and $curmonth != 12) {
        $query = "SELECT * from `taskman` WHERE `status`='0' AND `startdate` LIKE '" . $curyear . "-%' AND `startdate`< '" . $curdate . "' ORDER BY `startdate` ASC";
    } else {
        $query = "SELECT * from `taskman` WHERE `status`='0' AND `startdate`< '" . $curdate . "' ORDER BY `startdate` ASC";
    }
    $cells = wf_TableCell(__('Target date'));
    $cells .= wf_TableCell(__('Task address'));
    $cells .= wf_TableCell(__('Phone'));
    $cells .= wf_TableCell(__('Job type'));
    $cells .= wf_TableCell(__('Who should do'));
    $cells .= wf_TableCell(__('Actions'));
    $rows = wf_TableRow($cells, 'row1');
    $all = simple_queryall($query);
    if (!empty($all)) {
        foreach ($all as $io => $each) {
            $cells = wf_TableCell($each['startdate']);
            $cells .= wf_TableCell($each['address']);
            $cells .= wf_TableCell($each['phone']);
            $cells .= wf_TableCell(@$alljobtypes[$each['jobtype']]);
            $cells .= wf_TableCell(@$allemployee[$each['employee']]);
            $actions = wf_Link('?module=taskman&edittask=' . $each['id'], web_edit_icon(), false, '');
            $cells .= wf_TableCell($actions);
            $rows .= wf_TableRow($cells, 'row3');
        }
    }
    $result = wf_TableBody($rows, '100%', '0', 'sortable');
    return $result;
}
コード例 #13
0
ファイル: api.cf.php プロジェクト: l1ght13aby/Ubilling
/**
 * Returns CFs listing for some login
 * 
 * @param string $login Existing user login
 * 
 * @return string
 */
function cf_FieldShower($login)
{
    $alltypes = cf_TypeGetAll();
    $login = mysql_real_escape_string($login);
    $result = '';
    if (!empty($alltypes)) {
        $rows = '';
        foreach ($alltypes as $io => $eachtype) {
            $cells = wf_TableCell($eachtype['name'], '30%', 'row2');
            $cells .= wf_TableCell(cf_FieldDisplay($eachtype['type'], cf_FieldGet($login, $eachtype['id'])), '', 'row3');
            $rows .= wf_TableRow($cells);
        }
        $result = wf_TableBody($rows, '100%', 0, '');
    }
    return $result;
}
コード例 #14
0
ファイル: index.php プロジェクト: syscenter/ubilling-sms
 function web_TsmsMassendConfirm($userarray)
 {
     global $td_users, $td_mobiles, $td_realnames, $td_realnamestrans, $td_tariffprices, $td_alladdress;
     global $ubillingConfig;
     $altCfg = $ubillingConfig->getAlter();
     $template = tsms_GetTemplate();
     $excludeUsers = tsms_GetExcludeUsers();
     $excludeArr = array();
     //ignoring DEAD_TAGID users
     if ($altCfg['CEMETERY_ENABLED']) {
         $cemetery = new Cemetery();
         $excludeCemetery = $cemetery->getAllTagged();
         if (!empty($excludeCemetery)) {
             foreach ($excludeCemetery as $eecl => $eecld) {
                 $excludeUsers[$eecl] = 'NOP';
             }
         }
     }
     $cells = wf_TableCell(__('Login'));
     $cells .= wf_TableCell(__('Address'));
     $cells .= wf_TableCell(__('Real Name'));
     $cells .= wf_TableCell(__('SMS'));
     $cells .= wf_TableCell(__('Mobile'));
     $cells .= wf_TableCell(__('Tariff'));
     $cells .= wf_TableCell(__('Balance'));
     $cells .= wf_TableCell(__('Credit'));
     $rows = wf_TableRow($cells, 'row1');
     if (!empty($userarray)) {
         //excluded users handling
         if (!empty($excludeUsers)) {
             $excludeResult = wf_tag('h3') . __('Next users will be ignored while SMS sending') . wf_tag('h3', true);
             foreach ($excludeUsers as $excludeLogin => $nop) {
                 unset($userarray[$excludeLogin]);
                 $excludeArr[$excludeLogin] = $excludeLogin;
             }
         } else {
             $excludeResult = '';
         }
         foreach ($userarray as $login => $phone) {
             $message = tsms_ParseTemplate($login, $template);
             $smsContainer = wf_modal(__('Show'), __('SMS'), $message, '', '300', '200');
             $cells = wf_TableCell(wf_Link("?module=userprofile&username="******"", 'POST', $inputs, 'glamour');
     $result = $confirmForm;
     $result .= wf_TableBody($rows, '100%', '0', 'sortable');
     //showing which users will be excluded
     if (!empty($excludeUsers)) {
         $result .= $excludeResult;
         $result .= web_UserArrayShower($excludeArr);
     }
     return $result;
 }
コード例 #15
0
ファイル: api.address.php プロジェクト: l1ght13aby/Ubilling
/**
 * Returns available cities lister with some controls
 * 
 * @return string
 */
function web_CityLister()
{
    $allcity = zb_AddressGetCityAllData();
    $cells = wf_TableCell(__('ID'));
    $cells .= wf_TableCell(__('City name'));
    $cells .= wf_TableCell(__('City alias'));
    $cells .= wf_TableCell(__('Actions'));
    $rows = wf_TableRow($cells, 'row1');
    if (!empty($allcity)) {
        foreach ($allcity as $io => $eachcity) {
            $cells = wf_TableCell($eachcity['id']);
            $cells .= wf_TableCell($eachcity['cityname']);
            $cells .= wf_TableCell($eachcity['cityalias']);
            $acts = wf_JSAlert('?module=city&action=delete&cityid=' . $eachcity['id'], web_delete_icon(), 'Removing this may lead to irreparable results') . ' ';
            $acts .= wf_JSAlert('?module=city&action=edit&cityid=' . $eachcity['id'], web_edit_icon(), 'Are you serious') . ' ';
            $acts .= wf_Link('?module=streets', web_street_icon(), false, '');
            $cells .= wf_TableCell($acts);
            $rows .= wf_TableRow($cells, 'row3');
        }
    }
    $result = wf_TableBody($rows, '100%', 0, 'sortable');
    return $result;
}
コード例 #16
0
ファイル: api.cemetery.php プロジェクト: l1ght13aby/Ubilling
 /**
  * Renders full cemetary log for some user
  * 
  * @param string $login
  * 
  * @return string
  */
 public function renderCemeteryLog($login)
 {
     $result = '';
     if (!empty($this->allDead)) {
         $cells = wf_TableCell(__('Date'));
         $cells .= wf_TableCell(__('Status'));
         $rows = wf_TableRow($cells, 'row1');
         foreach ($this->allDead as $io => $each) {
             if ($each['login'] == $login) {
                 $led = $each['state'] ? web_bool_led(0) : web_bool_led(1);
                 $cells = wf_TableCell($each['date']);
                 $cells .= wf_TableCell($led);
                 $rows .= wf_TableRow($cells, 'row3');
             }
         }
         $result = wf_TableBody($rows, '100%', 0, 'sortable');
         if (cfr('USERREG')) {
             if ($this->isUserDead($login)) {
                 $inputs = wf_HiddenInput('cemeterysetasundead', $login);
                 $inputs .= wf_Submit(__('Set user connected'));
                 $result .= wf_Form('', 'POST', $inputs, 'glamour');
             } else {
                 $inputs = wf_HiddenInput('cemeterysetasdead', $login);
                 $inputs .= wf_Submit(__('Set user disconnected'));
                 $result .= wf_Form('', 'POST', $inputs, 'glamour');
             }
         }
     }
     return $result;
 }
コード例 #17
0
 /**
  * Returns list of available comments for some item
  * 
  * @param string $item
  * @return string
  */
 public function renderComments($item)
 {
     $this->setItem($item);
     $this->loadComments();
     $this->commentSaver();
     @($employeeLogins = unserialize(ts_GetAllEmployeeLoginsCached()));
     $result = '';
     $rows = '';
     if (!empty($this->data)) {
         foreach ($this->data as $io => $each) {
             $authorRealname = isset($employeeLogins[$each['admin']]) ? $employeeLogins[$each['admin']] : $each['admin'];
             $authorName = wf_tag('center') . wf_tag('b') . $authorRealname . wf_tag('b', true) . wf_tag('center', true);
             $authorAvatar = wf_tag('center') . @gravatar_ShowAdminAvatar($each['admin'], '64') . wf_tag('center', true);
             $commentController = wf_tag('center') . $this->commentControls($each['id']) . wf_tag('center', true);
             $authorPanel = $authorName . wf_tag('br') . $authorAvatar . wf_tag('br') . $commentController;
             $commentText = nl2br($each['text']);
             if (wf_CheckPost(array('adcommentseditid'))) {
                 if ($_POST['adcommentseditid'] == $each['id']) {
                     $commentText = $this->commentEditForm($each['id']);
                 } else {
                     $commentText = nl2br($each['text']);
                 }
             }
             $cells = wf_TableCell('', '20%');
             $cells .= wf_TableCell($each['date']);
             $rows .= wf_TableRow($cells, 'row2');
             $cells = wf_TableCell($authorPanel);
             $cells .= wf_TableCell($commentText);
             $rows .= wf_TableRow($cells, 'row3');
         }
         $result .= wf_TableBody($rows, '100%', '0', '');
     }
     $result .= $this->commentAddForm();
     return $result;
 }
コード例 #18
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
 function zb_AskoziaParseStatus($rawData)
 {
     $exploded = explodeRows($rawData);
     $data = array('phones' => 0, 'curcalls' => 0, 'totalcalls' => 0, 'ram' => 0, 'disk' => 0, 'uptime' => 0);
     if (!empty($exploded)) {
         foreach ($exploded as $each) {
             //detecting stats
             if (ispos($each, ';')) {
                 $parse = explode(';', $each);
                 //current calls
                 $data['curcalls'] = $parse[1];
                 //total calls
                 $data['totalcalls'] = $parse[2];
                 //registered phones
                 $data['phones'] = $parse[4];
                 //uptime in days or minutes
                 $data['uptime'] = $parse[5];
                 $data['uptime'] = str_replace('min', __('minutes'), $data['uptime']);
                 $data['uptime'] = str_replace('hours', __('hours'), $data['uptime']);
                 $data['uptime'] = str_replace('hour', __('hour'), $data['uptime']);
                 $data['uptime'] = str_replace('days', __('days'), $data['uptime']);
                 $data['uptime'] = str_replace('day', __('day'), $data['uptime']);
                 //system memory
                 $data['ram'] = $parse[6];
                 //external storage
                 $data['disk'] = $parse[7];
             }
         }
     }
     $cells = wf_TableCell(__('Phones'));
     $cells .= wf_TableCell(__('Current calls'));
     $cells .= wf_TableCell(__('Calls processed'));
     $cells .= wf_TableCell(__('Uptime'));
     $cells .= wf_TableCell(__('Memory usage'));
     $cells .= wf_TableCell(__('External storage'));
     $rows = wf_TableRow($cells, 'row2');
     $cells = wf_TableCell($data['phones']);
     $cells .= wf_TableCell($data['curcalls']);
     $cells .= wf_TableCell($data['totalcalls']);
     $cells .= wf_TableCell($data['uptime']);
     $cells .= wf_TableCell(web_bar($data['ram'], '100') . ' ' . $data['ram'] . '%');
     $cells .= wf_TableCell(web_bar($data['disk'], '100') . ' ' . $data['disk'] . '%');
     $rows .= wf_TableRow($cells, 'row3');
     $result = wf_TableBody($rows, '100%', 0, '');
     return $result;
 }
コード例 #19
0
ファイル: api.switches.php プロジェクト: carriercomm/Ubilling
/**
 * Do the search in dead switches time machine
 * 
 * @param string $query
 * @return string
 */
function ub_SwitchesTimeMachineSearch($request)
{
    $request = strtolower_utf8($request);
    $result = '';
    $query = "SELECT * from `switchdeadlog` ORDER BY `id` DESC";
    $raw = simple_queryall($query);
    $deadcount = 0;
    $tmpArr = array();
    if (!empty($raw)) {
        foreach ($raw as $io => $each) {
            if (!empty($each)) {
                $switchData = unserialize($each['swdead']);
                foreach ($switchData as $switchIp => $switchLocation) {
                    if (ispos(strtolower_utf8($switchIp), $request) or ispos(strtolower_utf8($switchLocation), $request)) {
                        $searchId = zb_rand_string(8);
                        $tmpArr[$searchId]['date'] = $each['date'];
                        $tmpArr[$searchId]['ip'] = $switchIp;
                        $tmpArr[$searchId]['location'] = $switchLocation;
                    }
                }
            }
        }
    }
    if (!empty($tmpArr)) {
        $cells = wf_TableCell(__('Date'));
        $cells .= wf_TableCell(__('IP'));
        $cells .= wf_TableCell(__('Location'));
        $rows = wf_TableRow($cells, 'row1');
        foreach ($tmpArr as $ia => $eachResult) {
            $cells = wf_TableCell($eachResult['date']);
            $cells .= wf_TableCell($eachResult['ip']);
            $cells .= wf_TableCell($eachResult['location']);
            $rows .= wf_TableRow($cells, 'row3');
            $deadcount++;
        }
        $result = wf_TableBody($rows, '100%', 0, 'sortable');
        $result .= __('Total') . ': ' . $deadcount;
    } else {
        $result = __('Nothing found');
    }
    return $result;
}
コード例 #20
0
ファイル: api.dshaper.php プロジェクト: l1ght13aby/Ubilling
 /**
  * Returns available time rules grid
  * 
  * @return string
  */
 public function renderList()
 {
     $messages = new UbillingMessageHelper();
     $allTariffs = zb_TariffGetPricesAll();
     $query = "SELECT * from `dshape_time` ORDER BY `id` ASC";
     $allrules = simple_queryall($query);
     $cells = wf_TableCell(__('ID'));
     $cells .= wf_TableCell(__('Tariff'));
     $cells .= wf_TableCell(__('Time from'));
     $cells .= wf_TableCell(__('Time to'));
     $cells .= wf_TableCell(__('Speed'));
     $cells .= wf_TableCell(__('Actions'));
     $rows = wf_TableRow($cells, 'row1');
     if (!empty($allrules)) {
         foreach ($allrules as $io => $eachrule) {
             $rowClass = isset($allTariffs[$eachrule['tariff']]) ? 'row3' : 'sigdeleteduser';
             $tariffControl = cfr('TARIFFSPEED') ? wf_Link('?module=tariffspeeds&tariff=' . $eachrule['tariff'], $eachrule['tariff'], false) : $eachrule['tariff'];
             $cells = wf_TableCell($eachrule['id']);
             $cells .= wf_TableCell($tariffControl);
             $cells .= wf_TableCell($eachrule['threshold1']);
             $cells .= wf_TableCell($eachrule['threshold2']);
             $cells .= wf_TableCell($eachrule['speed']);
             $actions = wf_JSAlert('?module=dshaper&delete=' . $eachrule['id'], web_delete_icon(), $messages->getDeleteAlert());
             $actions .= wf_JSAlert('?module=dshaper&edit=' . $eachrule['id'], web_edit_icon(), $messages->getEditAlert());
             $cells .= wf_TableCell($actions);
             $rows .= wf_TableRow($cells, $rowClass);
         }
     }
     $result = wf_TableBody($rows, '100%', '0', 'sortable');
     return $result;
 }
コード例 #21
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
                     $userip = @$alluserips[$backmaclogin];
                 } else {
                     $profilelink = '';
                     $realname = '';
                     $usertariff = '';
                     $userip = '';
                 }
                 $tablecells = wf_TableCell($profilelink);
                 $tablecells .= wf_TableCell($realname);
                 $tablecells .= wf_TableCell($usertariff);
                 $tablecells .= wf_TableCell($userip);
                 $tablecells .= wf_TableCell($eachmac);
                 $tablecells .= wf_TableCell($displaysig);
                 $tablerows .= wf_TableRow($tablecells, $rowclass);
             }
             $result .= wf_TableBody($tablerows, '100%', '0', 'sortable');
         } else {
             $result .= __('Empty reply received');
         }
         $result .= wf_tag('div', false, '', 'style="clear:both;"') . wf_tag('div', true);
         $result .= wf_tag('div', false, 'glamour') . __('Total') . ': ' . $userCounter . wf_tag('div', true);
         $result .= wf_tag('div', false, '', 'style="clear:both;"') . wf_tag('div', true);
         $result .= wf_delimiter();
     }
 } else {
     $result = __('No devices for signal monitoring found');
 }
 //if called as an user profile plugin
 if (isset($_GET['username'])) {
     $result .= wf_Link('?module=userprofile&username='******'username'], __('Back'), true, 'ubButton');
 }
コード例 #22
0
 /**
  * Renders PON signal from cache
  * 
  * @return string
  */
 protected function getPonSignalControl()
 {
     $result = '';
     $searched = __('No');
     $sigColor = '#000000';
     if ($this->alterCfg['SIGNAL_IN_PROFILE']) {
         $query = "SELECT `mac`,`oltid` FROM `pononu` WHERE `login`='" . $this->login . "'";
         $onu_data = simple_query($query);
         if (!empty($onu_data)) {
             $availCacheData = rcms_scandir(PONizer::SIGCACHE_PATH, $onu_data['oltid'] . "_" . PONizer::SIGCACHE_EXT);
             if (!empty($availCacheData)) {
                 foreach ($availCacheData as $io => $each) {
                     $raw = file_get_contents(PONizer::SIGCACHE_PATH . $each);
                     $raw = unserialize($raw);
                     foreach ($raw as $mac => $signal) {
                         if ($mac == $onu_data['mac']) {
                             if ($signal > 0 or $signal < -25) {
                                 $sigColor = '#ab0000';
                             } else {
                                 $sigColor = '#005502';
                             }
                             $searched = $signal;
                         }
                     }
                 }
             }
             $cells = wf_TableCell(__("ONU Signal"), '30%', 'row2');
             $cells .= wf_TableCell(wf_tag('strong') . wf_tag('font color=' . $sigColor, false) . $searched . wf_tag('font', true) . wf_tag('strong', true));
             $rows = wf_TableRow($cells, 'row3');
             $result = wf_TableBody($rows, '100%', '0');
         }
     }
     return $result;
 }
コード例 #23
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
            $content = $form->text_box('add[Attribute]', '');
            $form->addrow(__('Attribute'), $content);
            //  - Оператор
            $content = $form->select_tag('add[op]', $operators, '');
            $form->addrow(__('op'), $content);
            //  - Значение
            $content = $form->text_box('add[Value]', '');
            $form->addrow(__('Value'), $content);
            /* Кнопка модального окна с формой добавления нового атрибута */
            $html .= wf_modal(__('Append'), __('Adding of RADIUS-attribute'), $form->show(1), 'ubButton', 450, 275);
            // Форма переопределения атрибута 'User-Name'
            $query = "SELECT `value` FROM `radius_reassigns` WHERE `netid` = '{$netid}'";
            $result = simple_query($query);
            $result['value'] = !empty($result['value']) ? $result['value'] : '';
            $form = new InputForm('', 'POST', __('Save'), '', '', '', 'reassignment');
            //  - Значение
            $content = $form->radio_button('reassignment[value]', array('' => __('Login'), 'ip' => __('IP'), 'mac' => __('MAC')), $result['value']);
            $form->addrow(__('Value'), $content);
            /* Кнопка модального окна с формой переназначения атрибута 'User-Name' */
            $html .= wf_modal(__('Reassign User-Name'), __('Reassignment of User-Name'), $form->show(1), 'ubButton', 450, 155);
            /* Атрибуты сети */
            $html .= wf_TableBody($rows, '100%', '0', 'sortable');
        }
        /* Показываем содержимое модуля */
        show_window($title, $html);
    } else {
        show_window(__('Error'), __('This module is disabled'));
    }
} else {
    show_error(__('You cant control this module'));
}
コード例 #24
0
ファイル: index.php プロジェクト: carriercomm/Ubilling
 /**
  * Renders report by private data prop
  * 
  * @return string
  */
 public function render()
 {
     $cells = wf_TableCell(__('Tariff line'));
     $cells .= wf_TableCell(__('Payments count'));
     $cells .= wf_TableCell(__('ARPU'));
     $cells .= wf_TableCell(__('Cash'));
     $cells .= wf_TableCell(__('Visual'));
     $rows = wf_TableRow($cells, 'row1');
     $result = $this->panel();
     if (!empty($this->data)) {
         foreach ($this->data as $line => $data) {
             $monthArpu = $data['count'] != 0 ? $mountArpu = round($data['summ'] / $data['count'], 2) : 0;
             $cells = wf_TableCell($line);
             $cells .= wf_TableCell($data['count']);
             $cells .= wf_TableCell($monthArpu);
             $cells .= wf_TableCell($data['summ']);
             $cells .= wf_TableCell(web_bar($data['summ'], $this->totalsum), '', '', 'sorttable_customkey="' . $data['summ'] . '"');
             $rows .= wf_TableRow($cells, 'row3');
         }
     }
     $result .= wf_TableBody($rows, '100%', '0', 'sortable');
     return $result;
 }
コード例 #25
0
ファイル: api.swpoll.php プロジェクト: l1ght13aby/Ubilling
/**
 * Show data for some device
 * 
 * @param   $ip device ip
 * @param   $community snmp community
 * @param   $alltemplates all of snmp templates
 * @param   $quiet  no output
 * 
 * @return  void
 */
function sp_SnmpPollDevice($ip, $community, $alltemplates, $deviceTemplate, $allusermacs, $alladdress, $quiet = false)
{
    global $ubillingConfig;
    if (isset($alltemplates[$deviceTemplate])) {
        $currentTemplate = $alltemplates[$deviceTemplate];
        if (!empty($currentTemplate)) {
            $deviceDescription = $currentTemplate['define']['DEVICE'];
            $deviceFdb = $currentTemplate['define']['FDB'];
            $sectionResult = '';
            $sectionName = '';
            $finalResult = '';
            $tempArray = array();
            $alterCfg = $ubillingConfig->getAlter();
            $snmp = new SNMPHelper();
            //selecting FDB processing mode
            if (isset($currentTemplate['define']['FDB_MODE'])) {
                $deviceFdbMode = $currentTemplate['define']['FDB_MODE'];
            } else {
                $deviceFdbMode = 'default';
            }
            //selecting FDB ignored port for skipping MAC-s on it
            if (isset($currentTemplate['define']['FDB_IGNORE_PORTS'])) {
                $deviceFdbIgnore = $currentTemplate['define']['FDB_IGNORE_PORTS'];
                $deviceFdbIgnore = explode(',', $deviceFdbIgnore);
                $deviceFdbIgnore = array_flip($deviceFdbIgnore);
            } else {
                $deviceFdbIgnore = array();
            }
            //parse each section of template
            foreach ($alltemplates[$deviceTemplate] as $section => $eachpoll) {
                if ($section != 'define') {
                    if (!$quiet) {
                        $finalResult .= wf_tag('div', false, 'dashboard', '');
                    }
                    $sectionName = $eachpoll['NAME'];
                    $sectionOids = explode(',', $eachpoll['OIDS']);
                    $sectionParser = $eachpoll['PARSER'];
                    $sectionResult = '';
                    //now parse each oid
                    foreach ($sectionOids as $eachOid) {
                        $eachOid = trim($eachOid);
                        $rawData = $snmp->walk($ip, $community, $eachOid, true);
                        $rawData = str_replace('"', '`', $rawData);
                        $parseCode = '$sectionResult.=' . $sectionParser . '("' . $rawData . '");';
                        eval($parseCode);
                    }
                    if (!$quiet) {
                        $finalResult .= wf_tag('div', false, 'dashtask', '') . wf_tag('strong') . __($sectionName) . wf_tag('strong', true) . '<br>';
                        $finalResult .= $sectionResult . wf_tag('div', true);
                    }
                }
            }
            $finalResult .= wf_tag('div', true);
            $finalResult .= wf_tag('div', false, '', 'style="clear:both;"');
            $finalResult .= wf_tag('div', true);
            if (!$quiet) {
                show_window('', $finalResult);
            }
            //
            //parsing data from FDB table
            //
            if ($deviceFdb == 'true') {
                $portData = array();
                $snmp->setBackground(false);
                // need to process data with system + background
                if ($deviceFdbMode == 'default') {
                    //default zyxel & cisco port table
                    $portTable = $snmp->walk($ip, $community, '.1.3.6.1.2.1.17.4.3.1.2', true);
                } else {
                    if ($deviceFdbMode == 'dlp') {
                        //custom dlink port table with VLANS
                        $portTable = $snmp->walk($ip, $community, '.1.3.6.1.2.1.17.7.1.2.2.1.2', true);
                    }
                }
                if (!empty($portTable)) {
                    if ($deviceFdbMode == 'default') {
                        //default FDB parser
                        $portData = sp_SnmpParseFDB($portTable);
                    } else {
                        if ($deviceFdbMode == 'dlp') {
                            //exotic dlink parser
                            $portData = sp_SnmpParseFdbDl($portTable);
                        }
                    }
                    //skipping some port data if FDB_IGNORE_PORTS option is set
                    if (!empty($deviceFdbIgnore)) {
                        if (!empty($portData)) {
                            foreach ($portData as $some_mac => $some_port) {
                                if (!isset($deviceFdbIgnore[$some_port])) {
                                    $tempArray[$some_mac] = $some_port;
                                }
                            }
                            $portData = $tempArray;
                        }
                    }
                    $fdbCache = serialize($portData);
                    file_put_contents('exports/' . $ip . '_fdb', $fdbCache);
                }
                //show port data User friendly :)
                if (!empty($portData)) {
                    //extracting all needed data for switchport control
                    if ($alterCfg['SWITCHPORT_IN_PROFILE']) {
                        $allswitchesArray = zb_SwitchesGetAll();
                        $allportassigndata = array();
                        $allportassigndata_q = "SELECT * from `switchportassign`;";
                        $allportassigndata_raw = simple_queryall($allportassigndata_q);
                        if (!empty($allportassigndata_raw)) {
                            foreach ($allportassigndata_raw as $iopd => $eachpad) {
                                $allportassigndata[$eachpad['login']] = $eachpad;
                            }
                        }
                    }
                    $allusermacs = array_flip($allusermacs);
                    $cells = wf_TableCell(__('User'), '30%');
                    $cells .= wf_TableCell(__('MAC'));
                    $cells .= wf_TableCell(__('Ports'));
                    $rows = wf_TableRow($cells, 'row1');
                    foreach ($portData as $eachMac => $eachPort) {
                        //user detection
                        if (isset($allusermacs[$eachMac])) {
                            $userLogin = $allusermacs[$eachMac];
                            @($useraddress = $alladdress[$userLogin]);
                            $userlink = wf_Link('?module=userprofile&username='******' ' . $useraddress, false);
                            //switch port assing form
                            if ($alterCfg['SWITCHPORT_IN_PROFILE']) {
                                $assignForm = wf_modal(web_edit_icon(__('Switch port assign')), __('Switch port assign'), web_SnmpSwitchControlForm($userLogin, $allswitchesArray, $allportassigndata, @$_GET['switchid'], $eachPort), '', '500', '250');
                                if (isset($allportassigndata[$userLogin])) {
                                    $assignForm .= wf_img('skins/arrow_right_green.png') . @$allportassigndata[$userLogin]['port'];
                                }
                            } else {
                                $assignForm = '';
                            }
                        } else {
                            $userlink = '';
                            $assignForm = '';
                        }
                        $cells = wf_TableCell($userlink . $assignForm, '', '', 'sorttable_customkey="' . $eachPort . '"');
                        $cells .= wf_TableCell($eachMac);
                        $cells .= wf_TableCell($eachPort);
                        $rows .= wf_TableRow($cells, 'row3');
                    }
                    if (!$quiet) {
                        show_window(__('FDB'), wf_TableBody($rows, '100%', '0', 'sortable'));
                    }
                }
            }
        }
    }
}
コード例 #26
0
ファイル: index.php プロジェクト: nightflyza/Ubilling
 /**
  * Renders available reports list
  * 
  * @return string
  */
 function web_ReportMasterShowReportsList()
 {
     $messages = new UbillingMessageHelper();
     $reports_path = DATA_PATH . "reports/";
     $allreports = rcms_scandir($reports_path);
     $cells = wf_TableCell(__('Report name'));
     $cells .= wf_TableCell(__('Actions'));
     $rows = wf_TableRow($cells, 'row1');
     if (!empty($allreports)) {
         foreach ($allreports as $eachreport) {
             $report_template = rcms_parse_ini_file($reports_path . $eachreport);
             $cells = wf_TableCell(wf_Link('?module=reportmaster&view=' . $eachreport, __($report_template['REPORT_NAME'])));
             $actControls = wf_JSAlert('?module=reportmaster&delete=' . $eachreport, web_delete_icon(), $messages->getDeleteAlert());
             $actControls .= wf_JSAlert('?module=reportmaster&edit=' . $eachreport, web_edit_icon(), $messages->getEditAlert());
             $cells .= wf_TableCell($actControls);
             $rows .= wf_TableRow($cells, 'row3');
         }
     }
     $result = wf_TableBody($rows, '100%', 0, 'sortable');
     return $result;
 }
コード例 #27
0
ファイル: api.ukv.php プロジェクト: l1ght13aby/Ubilling
 /**
  * renders streets report
  * 
  * @return void
  */
 public function reportStreets()
 {
     $ukvCities = array();
     $ukvStreets = array();
     //loads cities and streets occupied by UKV users
     $ukvCities_q = "SELECT DISTINCT `city` from `ukv_users` ORDER BY `city` ASC";
     $ukvCitiesRaw = simple_queryall($ukvCities_q);
     if (!empty($ukvCitiesRaw)) {
         foreach ($ukvCitiesRaw as $ieuc => $euc) {
             $ukvCities[$euc['city']] = $euc['city'];
         }
     }
     $ukvStreets_q = "SELECT DISTINCT `street` from `ukv_users` ORDER BY `street` ASC";
     $ukvStreetsRaw = simple_queryall($ukvStreets_q);
     if (!empty($ukvStreetsRaw)) {
         foreach ($ukvStreetsRaw as $ieus => $eus) {
             $ukvStreets[$eus['street']] = $eus['street'];
         }
     }
     //main codepart
     $citySelected = wf_CheckPost(array('streetreportcity')) ? $_POST['streetreportcity'] : '';
     $streetSelected = wf_CheckPost(array('streetreportstreet')) ? $_POST['streetreportstreet'] : '';
     $inputs = wf_Selector('streetreportcity', $ukvCities, __('City'), $citySelected, false);
     $inputs .= wf_Selector('streetreportstreet', $ukvStreets, __('Street'), $streetSelected, false);
     $inputs .= wf_Submit(__('Show'));
     $form = wf_Form('', 'POST', $inputs, 'glamour');
     show_window(__('Streets report'), $form);
     if (wf_CheckPost(array('streetreportcity', 'streetreportstreet')) or wf_CheckGet(array('rc', 'rs'))) {
         //set form data
         if (wf_CheckPost(array('streetreportcity', 'streetreportstreet'))) {
             $citySearch = $_POST['streetreportcity'];
             $streetSearch = $_POST['streetreportstreet'];
         }
         //or printable report
         if (wf_CheckGet(array('rc', 'rs'))) {
             $citySearch = $_GET['rc'];
             $streetSearch = $_GET['rs'];
         }
         if (!empty($this->users)) {
             $counter = 0;
             $cells = wf_TableCell(__('Contract'), '10%');
             $cells .= wf_TableCell(__('Full address'), '31%');
             $cells .= wf_TableCell(__('Real Name'), '30%');
             $cells .= wf_TableCell(__('Tariff'), '15%');
             $cells .= wf_TableCell(__('Cash'), '7%');
             $cells .= wf_TableCell(__('Status'), '7%');
             $rows = wf_TableRow($cells, 'row1');
             foreach ($this->users as $io => $eachUser) {
                 if ($eachUser['city'] == $citySearch and $eachUser['street'] == $streetSearch) {
                     $cells = wf_TableCell($eachUser['contract']);
                     $fullAddress = $this->userGetFullAddress($eachUser['id']);
                     $profileLink = wf_Link(self::URL_USERS_PROFILE . $eachUser['id'], web_profile_icon() . ' ', false, '');
                     $cells .= wf_TableCell($profileLink . $fullAddress);
                     $cells .= wf_TableCell($eachUser['realname']);
                     $cells .= wf_TableCell($this->tariffs[$eachUser['tariffid']]['tariffname']);
                     $cells .= wf_TableCell($eachUser['cash']);
                     $cells .= wf_TableCell(web_bool_led($eachUser['active'], true));
                     $rows .= wf_TableRow($cells, 'row3');
                     $counter++;
                 }
             }
             $result = wf_TableBody($rows, '100%', '0', 'sortable');
             $result .= __('Total') . ': ' . $counter;
             if (wf_CheckGet(array('printable'))) {
                 $this->reportPrintable($citySearch . ' / ' . $streetSearch, $result);
             } else {
                 $printlink = wf_Link(self::URL_REPORTS_MGMT . 'reportStreets&rc=' . $citySearch . '&rs=' . $streetSearch . '&printable=true', wf_img('skins/icon_print.png', __('Print')), false, '');
                 show_window($citySearch . ' / ' . $streetSearch . ' ' . $printlink, $result);
             }
         } else {
             show_window(__('Result'), __('Any users found'));
         }
     }
 }
コード例 #28
0
function zb_NewMacShow()
{
    global $ubillingConfig;
    $billing_config = $ubillingConfig->getBilling();
    $alter_config = $ubillingConfig->getAlter();
    $allarp = array();
    $sudo = $billing_config['SUDO'];
    $cat = $billing_config['CAT'];
    $grep = $billing_config['GREP'];
    $tail = $billing_config['TAIL'];
    $alter_conf = parse_ini_file(CONFIG_PATH . 'alter.ini');
    $leases = $alter_conf['NMLEASES'];
    $leasemark = $alter_conf['NMLEASEMARK'];
    $command = $sudo . ' ' . $cat . ' ' . $leases . ' | ' . $grep . ' "' . $leasemark . '" | ' . $tail . ' -n 200';
    $rawdata = shell_exec($command);
    $allusedMacs = zb_getAllUsedMac();
    $result = '';
    //fdb cache preprocessing
    $fdbData_raw = rcms_scandir('./exports/', '*_fdb');
    if (!empty($fdbData_raw)) {
        $fdbArr = sn_SnmpParseFdbCacheArray($fdbData_raw);
        $fdbColumn = true;
    } else {
        $fdbArr = array();
        $fdbColumn = false;
    }
    $cells = wf_TableCell(__('MAC'));
    if (!empty($fdbColumn)) {
        $cells .= wf_TableCell(__('Switch'));
    }
    if ($alter_config['MACVEN_ENABLED']) {
        $cells .= wf_TableCell(__('Manufacturer'));
    }
    $rows = wf_TableRow($cells, 'row1');
    if (!empty($rawdata)) {
        $cleardata = exploderows($rawdata);
        foreach ($cleardata as $eachline) {
            preg_match('/[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}/i', $eachline, $matches);
            if (!empty($matches)) {
                $allarp[] = $matches[0];
            }
        }
        $un_arr = array_unique($allarp);
        if (!empty($un_arr)) {
            if ($alter_config['MACVEN_ENABLED']) {
                //adding ajax loader
                $result .= wf_AjaxLoader();
            }
            foreach ($un_arr as $io => $eachmac) {
                if (zb_checkMacFree($eachmac, $allusedMacs)) {
                    $cells = wf_TableCell(@$eachmac);
                    if (!empty($fdbColumn)) {
                        $cells .= wf_TableCell(sn_SnmpParseFdbExtract(@$fdbArr[$eachmac]));
                    }
                    if ($alter_config['MACVEN_ENABLED']) {
                        $containerName = 'NMRSMCNT_' . zb_rand_string(8);
                        $lookupVendorLink = wf_AjaxLink('?module=macvendor&mac=' . @$eachmac . '&raw=true', wf_img('skins/macven.gif', __('Device vendor')), $containerName, false, '');
                        $lookupVendorLink .= wf_tag('span', false, '', 'id="' . $containerName . '"') . '' . wf_tag('span', true);
                        $cells .= wf_TableCell($lookupVendorLink, '350');
                    }
                    $rows .= wf_TableRow($cells, 'row3');
                }
            }
        }
    }
    $result .= wf_TableBody($rows, '100%', '0', 'sortable');
    return $result;
}
コード例 #29
0
ファイル: index.php プロジェクト: l1ght13aby/Ubilling
 public function documents_list_show($item, $item_id)
 {
     // Get documents list using the elements' id:
     $query = "SELECT * FROM `" . self::TABLE_DOCS . "` WHERE `" . $item . "_id` = '" . $item_id . "'";
     $result = simple_queryall($query);
     $cells = wf_TableCell(__('ID'));
     $cells .= wf_TableCell(__('Title'));
     $cells .= wf_TableCell(__('Date'));
     $cells .= wf_TableCell(__('Filename'));
     $cells .= wf_TableCell(__('Actions'));
     $rows = wf_TableRow($cells, 'row2');
     if (!empty($result)) {
         foreach ($result as $document) {
             $filename = basename($document['path']);
             $cells = wf_TableCell($document['id']);
             $cells .= wf_TableCell($document['title']);
             $cells .= wf_TableCell($document['date']);
             $cells .= wf_TableCell($filename);
             $actions = wf_Link(self::URL_DOC_DOWNLOAD . $document['id'], wf_img('skins/icon_download.png', __('Download')));
             $actions .= wf_Link(self::URL_DOC_DELETE . $document['id'], web_delete_icon());
             $cells .= wf_TableCell($actions);
             $rows .= wf_TableRow($cells, 'row3');
         }
     } else {
         $cells = wf_TableCell(__('There is no documents to show'), null, null, 'colspan="5" align="center"');
         $rows .= wf_TableRow($cells, 'row3');
     }
     return wf_TableBody($rows, '100%', '0');
 }
コード例 #30
0
 /**
  * Renders previously generated all users documents 
  * 
  * @return string
  */
 public function renderAllUserDocuments()
 {
     $allAddress = zb_AddressGetFulladdresslistCached();
     $allRealnames = zb_UserGetAllRealnames();
     $cells = wf_TableCell(__('ID'));
     $cells .= wf_TableCell(__('Date'));
     $cells .= wf_TableCell(__('Public'));
     $cells .= wf_TableCell(__('Template'));
     $cells .= wf_TableCell(__('Path'));
     $cells .= wf_TableCell(__('Login'));
     $cells .= wf_TableCell(__('Address'));
     $cells .= wf_TableCell(__('Real Name'));
     $cells .= wf_TableCell(__('Actions'));
     $rows = wf_TableRow($cells, 'row1');
     if (!empty($this->allUserDocuments)) {
         foreach ($this->allUserDocuments as $io => $each) {
             $cells = wf_TableCell($each['id']);
             $cells .= wf_TableCell($each['date']);
             $cells .= wf_TableCell(web_bool_led($each['public']));
             @($templateName = $this->templates[$each['templateid']]['name']);
             $cells .= wf_TableCell(wf_tag('abbr', false, '', 'title="' . $each['templateid'] . '"') . $templateName . wf_tag('abbr', true));
             $downloadLink = wf_Link('?module=report_documents&documentdownload=' . $each['path'], $each['path'], false, '');
             $cells .= wf_TableCell($downloadLink);
             $profileLink = wf_Link('?module=userprofile&username='******'login'], web_profile_icon() . ' ' . $each['login']);
             $cells .= wf_TableCell($profileLink);
             $cells .= wf_TableCell(@$allAddress[$each['login']]);
             $cells .= wf_TableCell(@$allRealnames[$each['login']]);
             $actionLinks = wf_JSAlert('?module=report_documents&deletedocument=' . $each['id'], web_delete_icon(), __('Are you serious'));
             $cells .= wf_TableCell($actionLinks);
             $rows .= wf_TableRow($cells, 'row3');
         }
     }
     $result = wf_TableBody($rows, '100%', '0', '');
     return $result;
 }