function createCdrGrid($customerid = '', $cdrtype = '', $start = 0, $limit = 1, $filter = null, $content = null, $stype = null, $order = null, $divName = "formCdr", $ordering = "") { global $locate; $_SESSION['ordering'] = $ordering; if ($filter == null || $content == null || !is_array($content) && $content == 'Array' || !is_array(filter) && $filter == 'Array') { $content = null; $filter = null; $numRows =& astercrm::getCdrNumRows($customerid, $cdrtype); $arreglo =& astercrm::getAllCdrRecords($customerid, $cdrtype, $start, $limit, $order); } else { foreach ($content as $value) { if (trim($value) != "") { //搜索内容有值 $flag = "1"; break; } } foreach ($filter as $value) { if (trim($value) != "") { //搜索条件有值 $flag2 = "1"; break; } } foreach ($stype as $value) { if (trim($value) != "") { //搜索方式有值 $flag3 = "1"; break; } } if ($flag != "1" || $flag2 != "1") { //无值 $order = null; $numRows =& astercrm::getCdrNumRows($customerid, $cdrtype); $arreglo =& astercrm::getAllCdrRecords($customerid, $cdrtype, $start, $limit, $order); } elseif ($flag3 != 1) { //未选择搜索方式 $order = "calldate"; $numRows =& astercrm::getCdrNumRowsMore($customerid, $cdrtype, $filter, $content); $arreglo =& astercrm::getCdrRecordsFilteredMore($customerid, $cdrtype, $start, $limit, $filter, $content, $order); } else { $order = "calldate"; $numRows =& astercrm::getCdrNumRowsMorewithstype($customerid, $cdrtype, $filter, $content, $stype); $arreglo =& astercrm::getCdrRecordsFilteredMorewithstype($customerid, $cdrtype, $start, $limit, $filter, $content, $stype, $order); } } // Databse Table: fields if ($cdrtype == 'recent') { $fields = array(); $fields[] = 'calldate'; $fields[] = 'src'; $fields[] = 'dst'; $fields[] = 'didnumber'; $fields[] = 'dstchannel'; $fields[] = 'duration'; $fields[] = 'billsec'; $fields[] = 'record'; // HTML table: Headers showed $headers = array(); $headers[] = $locate->Translate("Calldate") . '<br>'; $headers[] = $locate->Translate("Src") . '<br>'; $headers[] = $locate->Translate("Dst") . '<br>'; $headers[] = $locate->Translate("Callee Id") . '<br>'; $headers[] = $locate->Translate("Agent") . '<br>'; $headers[] = $locate->Translate("Duration") . '<br>'; $headers[] = $locate->Translate("Billsec") . '<br>'; $headers[] = $locate->Translate("record") . '<br>'; // HTML table: hearders attributes $attribsHeader = array(); $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; // HTML Table: columns attributes $attribsCols = array(); $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; // HTML Table: If you want ascendent and descendent ordering, set the Header Events. $eventHeader = array(); $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","calldate","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","src","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","dst","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","didnumber","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","dstchannel","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","duration","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","billsec","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","id","billsec","' . $divName . '","ORDERING","' . $stype . '");return false;\''; // Select Box: fields table. $fieldsFromSearch = array(); $fieldsFromSearch[] = 'src'; $fieldsFromSearch[] = 'calldate'; $fieldsFromSearch[] = 'dst'; $fieldsFromSearch[] = 'didnumber'; $fieldsFromSearch[] = 'billsec'; // Selecct Box: Labels showed on search select box. $fieldsFromSearchShowAs = array(); $fieldsFromSearchShowAs[] = $locate->Translate("src"); $fieldsFromSearchShowAs[] = $locate->Translate("calldate"); $fieldsFromSearchShowAs[] = $locate->Translate("dst"); $fieldsFromSearchShowAs[] = $locate->Translate("callee id"); $fieldsFromSearchShowAs[] = $locate->Translate("billsec"); // Create object whit 5 cols and all data arrays set before. $table = new ScrollTable(7, $start, $limit, $filter, $numRows, $content, $order, $customerid, $cdrtype); $table->setHeader('title', $headers, $attribsHeader, $eventHeader, $edit = false, $delete = false, $detail = false); $table->setAttribsCols($attribsCols); $table->addRowSearchMore("mycdr", $fieldsFromSearch, $fieldsFromSearchShowAs, $filter, $content, $start, $limit, 0, 0, $typeFromSearch, $typeFromSearchShowAs, $stype); while ($arreglo->fetchInto($row)) { // Change here by the name of fields of its database table $rowc = array(); $rowc[] = $row['monitorid']; $rowc[] = $row['calldate']; $rowc[] = $row['src']; $rowc[] = $row['dst']; $rowc[] = $row['didnumber']; if (strstr($row['dstchannel'], 'agent')) { $agent = split('/', $row['dstchannel']); $rowc[] = $agent['1']; } else { $rowc[] = ''; } $rowc[] = $row['duration']; $rowc[] = $row['billsec']; if ($row['processed'] == 'yes' && $row['fileformat'] != 'error') { $rowc['filename'] = $row['filename'] . '.' . $row['fileformat']; } else { $rowc['filename'] = ''; } $table->addRow("mycdr", $rowc, false, false, false, $divName, $fields); } $html = $table->render('static'); } else { $fields = array(); $fields[] = 'calldate'; $fields[] = 'src'; $fields[] = 'dst'; $fields[] = 'didnumber'; $fields[] = 'dstchannel'; $fields[] = 'duration'; $fields[] = 'billsec'; $fields[] = 'disposition'; $fields[] = 'credit'; $fileds[] = 'destination'; $fileds[] = 'memo'; // HTML table: Headers showed $headers = array(); $headers[] = $locate->Translate("Calldate") . '<br>'; $headers[] = $locate->Translate("Src") . '<br>'; $headers[] = $locate->Translate("Dst") . '<br>'; $headers[] = $locate->Translate("Callee Id") . '<br>'; $headers[] = $locate->Translate("Agent") . '<br>'; $headers[] = $locate->Translate("Duration") . '<br>'; $headers[] = $locate->Translate("Billsec") . '<br>'; $headers[] = $locate->Translate("Disposition") . '<br>'; $headers[] = $locate->Translate("credit") . '<br>'; $headers[] = $locate->Translate("destination") . '<br>'; $headers[] = $locate->Translate("memo") . '<br>'; // HTML table: hearders attributes $attribsHeader = array(); $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; // HTML Table: columns attributes $attribsCols = array(); $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; // HTML Table: If you want ascendent and descendent ordering, set the Header Events. $eventHeader = array(); $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","calldate","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","src","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","dst","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","didnumber","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","dstchannel","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","duration","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","billsec","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","disposition","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","credit","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","destination","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","memo","' . $divName . '","ORDERING","' . $stype . '");return false;\''; // Select Box: type table. $typeFromSearch = array(); $typeFromSearch[] = 'like'; $typeFromSearch[] = 'equal'; $typeFromSearch[] = 'more'; $typeFromSearch[] = 'less'; // Selecct Box: Labels showed on searchtype select box. $typeFromSearchShowAs = array(); $typeFromSearchShowAs[] = 'like'; $typeFromSearchShowAs[] = '='; $typeFromSearchShowAs[] = '>'; $typeFromSearchShowAs[] = '<'; // Select Box: fields table. $fieldsFromSearch = array(); $fieldsFromSearch[] = 'src'; $fieldsFromSearch[] = 'calldate'; $fieldsFromSearch[] = 'dst'; $fieldsFromSearch[] = 'didnumber'; $fieldsFromSearch[] = 'billsec'; $fieldsFromSearch[] = 'disposition'; $fieldsFromSearch[] = 'credit'; $fieldsFromSearch[] = 'destination'; $fieldsFromSearch[] = 'memo'; // Selecct Box: Labels showed on search select box. $fieldsFromSearchShowAs = array(); $fieldsFromSearchShowAs[] = $locate->Translate("src"); $fieldsFromSearchShowAs[] = $locate->Translate("calldate"); $fieldsFromSearchShowAs[] = $locate->Translate("dst"); $fieldsFromSearchShowAs[] = $locate->Translate("callee id"); $fieldsFromSearchShowAs[] = $locate->Translate("billsec"); $fieldsFromSearchShowAs[] = $locate->Translate("disposition"); $fieldsFromSearchShowAs[] = $locate->Translate("credit"); $fieldsFromSearchShowAs[] = $locate->Translate("destination"); $fieldsFromSearchShowAs[] = $locate->Translate("memo"); // Create object whit 5 cols and all data arrays set before. $table = new ScrollTable(9, $start, $limit, $filter, $numRows, $content, $order, $customerid, $cdrtype); $table->setHeader('title', $headers, $attribsHeader, $eventHeader, $edit = false, $delete = false, $detail = false); $table->setAttribsCols($attribsCols); $table->addRowSearchMore("mycdr", $fieldsFromSearch, $fieldsFromSearchShowAs, $filter, $content, $start, $limit, 0, 0, $typeFromSearch, $typeFromSearchShowAs, $stype); while ($arreglo->fetchInto($row)) { // Change here by the name of fields of its database table $rowc = array(); $rowc[] = $row['id']; $rowc[] = $row['calldate']; $rowc[] = $row['src']; $rowc[] = $row['dst']; $rowc[] = $row['didnumber']; if (strstr($row['dstchannel'], 'agent')) { $agent = split('/', $row['dstchannel']); $rowc[] = $agent['1']; } else { $rowc[] = ''; } $rowc[] = $row['duration']; $rowc[] = $row['billsec']; $rowc[] = $row['disposition']; $rowc[] = $row['credit']; $rowc[] = $row['destination']; $rowc[] = $row['memo']; $table->addRow("mycdr", $rowc, false, false, false, $divName, $fields); } $html = $table->render(); } // End Editable Zone return $html; }