コード例 #1
1
function BlockPlayer($check, $sid, $num, $type, $length)
{
    $objResponse = new xajaxResponse();
    global $userbank, $username;
    $sid = (int) $sid;
    $length = (int) $length;
    if (!$userbank->HasAccess(ADMIN_OWNER | ADMIN_ADD_BAN)) {
        $objResponse->redirect("index.php?p=login&m=no_access", 0);
        $log = new CSystemLog("w", "Hacking Attempt", $username . " tried to process a playerblock, but doesnt have access.");
        return $objResponse;
    }
    //get the server data
    $sdata = $GLOBALS['db']->GetRow("SELECT ip, port, rcon FROM " . DB_PREFIX . "_servers WHERE sid = '" . $sid . "';");
    //test if server is online
    if ($test = @fsockopen($sdata['ip'], $sdata['port'], $errno, $errstr, 2)) {
        @fclose($test);
        require_once INCLUDES_PATH . "/CServerRcon.php";
        $r = new CServerRcon($sdata['ip'], $sdata['port'], $sdata['rcon']);
        if (!$r->Auth()) {
            $GLOBALS['db']->Execute("UPDATE " . DB_PREFIX . "_servers SET rcon = '' WHERE sid = '" . $sid . "' LIMIT 1;");
            $objResponse->addAssign("srv_{$num}", "innerHTML", "<font color='red' size='1'>Wrong RCON Password, please change!</font>");
            $objResponse->addScript('set_counter(1);');
            return $objResponse;
        }
        $ret = $r->rconCommand("status");
        // show hostname instead of the ip, but leave the ip in the title
        require_once "../includes/system-functions.php";
        $hostsearch = preg_match_all('/hostname:[ ]*(.+)/', $ret, $hostname, PREG_PATTERN_ORDER);
        $hostname = trunc(htmlspecialchars($hostname[1][0]), 25, false);
        if (!empty($hostname)) {
            $objResponse->addAssign("srvip_{$num}", "innerHTML", "<font size='1'><span title='" . $sdata['ip'] . ":" . $sdata['port'] . "'>" . $hostname . "</span></font>");
        }
        $gothim = false;
        $search = preg_match_all(STATUS_PARSE, $ret, $matches, PREG_PATTERN_ORDER);
        //search for the steamid on the server
        foreach ($matches[3] as $match) {
            if (substr($match, 8) == substr($check, 8)) {
                // gotcha!!! kick him!
                $gothim = true;
                $GLOBALS['db']->Execute("UPDATE `" . DB_PREFIX . "_comms` SET sid = '" . $sid . "' WHERE authid = '" . $check . "' AND RemovedBy IS NULL;");
                $requri = substr($_SERVER['REQUEST_URI'], 0, strrpos($_SERVER['REQUEST_URI'], "pages/admin.blockit.php"));
                $kick = $r->sendCommand("sc_fw_block " . $type . " " . $length . " " . $match);
                $objResponse->addAssign("srv_{$num}", "innerHTML", "<font color='green' size='1'><b><u>Player Found & blocked!!!</u></b></font>");
                $objResponse->addScript("set_counter('-1');");
                return $objResponse;
            }
        }
        if (!$gothim) {
            $objResponse->addAssign("srv_{$num}", "innerHTML", "<font size='1'>Player not found.</font>");
            $objResponse->addScript('set_counter(1);');
            return $objResponse;
        }
    } else {
        $objResponse->addAssign("srv_{$num}", "innerHTML", "<font color='red' size='1'><i>Can't connect to server.</i></font>");
        $objResponse->addScript('set_counter(1);');
        return $objResponse;
    }
}
コード例 #2
0
ファイル: menu_control.inc.php プロジェクト: edt82/ona
function ws_menu($window_name, $form = '')
{
    global $conf, $images;
    $html = $js = '';
    // If an array in a string was provided, build the array and store it in $form
    $form = parse_options_string($form);
    printmsg("DEBUG => Displaying tooltip: {$form['tooltip']}", 4);
    $menuname = 'get_html_' . $form['menu_name'];
    list($html, $js) = $menuname($form);
    // Okay here's what we do:
    //   1. Hide the tool-tip
    //   2. Update it's content
    //   3. Reposition it
    //   4. Unhide it
    $response = new xajaxResponse();
    if ($html) {
        $response->addScript("el('{$form['id']}').style.visibility = 'hidden';");
        $response->addAssign($form['id'], "innerHTML", $html);
        $response->addScript("wwTT_position('{$form['id']}'); el('{$form['id']}').style.visibility = 'visible';");
    }
    if ($js) {
        $response->addScript($js);
    }
    return $response->getXML();
}
コード例 #3
0
 function abrirNavFotos($id)
 {
     $objResponse = new xajaxResponse();
     $codigo = '';
     $objResponse->addScript("xajax_loadNavFotos(" . $id . ")");
     $objResponse->addScript("desplegarDiv()");
     return $objResponse;
 }
コード例 #4
0
ファイル: inBox_xajax.php プロジェクト: johnfelipe/orfeo
function updateInBox($usua_doc)
{
    $xres = new xajaxResponse();
    $ruta_raiz = ".";
    include_once "{$ruta_raiz}/include/db/ConnectionHandler.php";
    $db = new ConnectionHandler("{$ruta_raiz}");
    $db->conn->SetFetchMode(ADODB_FETCH_ASSOC);
    switch ($db->driver) {
        case 'oci8':
            $query = "SELECT * FROM SGD_NOVEDAD_USUARIO WHERE USUA_DOC='{$usua_doc}'";
            break;
        case 'postgres':
            $campo = '"USUA_DOC"';
            $query = "SELECT * FROM SGD_NOVEDAD_USUARIO WHERE {$campo}='{$usua_doc}'";
            break;
    }
    $rs = $db->query($query);
    //var_dump($query);
    while (!$rs->EOF) {
        $xres->addScript("var lf=screen.width-380; var tp=screen.height-200; window.open('alert.php', 'ORFEO :: Bandeja de Entrada','width=460, height=200, status=0, toolbar=0, resizable=0, scrollbars=1, location=0, left='+lf+',top='+tp);");
        $rs->moveNext();
    }
    $xres->addAssign("folders", "innerHTML", ob_get_clean());
    return utf8_encode($xres->getXML());
}
コード例 #5
0
ファイル: edit_tag.inc.php プロジェクト: edt82/ona
function ws_delete($window_name, $form = '')
{
    global $base, $include, $conf, $self, $onadb;
    // Check permissions
    if (!(auth('host_del') or auth('subnet_del'))) {
        $response = new xajaxResponse();
        $response->addScript("alert('Permission denied!');");
        return $response->getXML();
    }
    // If an array in a string was provided, build the array and store it in $form
    $form = parse_options_string($form);
    // Instantiate the xajaxResponse object
    $response = new xajaxResponse();
    $js = '';
    // Run the module
    list($status, $output) = run_module('tag_del', array('tag' => $form['id'], 'commit' => 'Y'));
    // If the module returned an error code display a popup warning
    if ($status) {
        $js .= "alert('Delete failed. " . preg_replace('/[\\s\']+/', ' ', $self['error']) . "');";
    } else {
        // If there's (refresh) js, send it to the browser
        if ($form['js']) {
            $js .= $form['js'];
        }
    }
    // Return an XML response
    $response->addScript($js);
    return $response->getXML();
}
コード例 #6
0
ファイル: ref_kamar.php プロジェクト: reekoheek/srmis
    function get_bed($inputId, $id, $id_sel = NULL) {
		$objResponse = new xajaxResponse();
		$kon = new Konek;
		$kon->sql = "SELECT id,nomor FROM ref_kamar WHERE pelayanan_id = '".$id."' AND status=0 ORDER BY nomor";
		$kon->execute();
		$data = $kon->getAll();	
		$objResponse->addAssign($inputId, "options.length", "1");
		for($i=0;$i<sizeof($data);$i++) {
			if($data[$i][id] == $id_sel)
				$objResponse->addScript("addOption('".$inputId."','".$inputId."kamar_".$data[$i][id]."','".$data[$i][nama]."','".$data[$i][id]."',false,true);");
			else
				$objResponse->addScript("addOption('".$inputId."','".$inputId."_kamar_".$data[$i][id]."','".$data[$i][nama]."','".$data[$i][id]."',false,false);");
		}
		//$objResponse->addScript("addOption('".$inputId."','".$inputId."_tidak_ada_dokter','Dokter Lain','',false,false);");
		return $objResponse;
	}    			
コード例 #7
0
ファイル: resep_rajal.modal.php プロジェクト: reekoheek/srmis
    function tutup_resep_rawat_jalan() {
		$objResponse = new xajaxResponse;
		$objResponse->addScriptCall("enable_mainbar");
		$objResponse->addAssign("modal_resep_rawat_jalan", "style.display", "none");
		$objResponse->addScript("document.getElementById('input_resep_rawat_jalan').reset()");
		
		return $objResponse;
	}    
コード例 #8
0
ファイル: connected_users.php プロジェクト: r3-gis/EcoGIS
function disconnectUser($dn_name, $us_login)
{
    global $auth;
    $objResponse = new xajaxResponse();
    $auth->disconnectUser($dn_name, $us_login);
    $objResponse->addScript("document.location='connected_users.php'");
    return $objResponse->getXML();
}
コード例 #9
0
ファイル: asteriskcalls.server.php プロジェクト: ljhcj/IRISCC
/**
*  initialize page elements
*
*/
function init()
{
    global $locate;
    $objResponse = new xajaxResponse();
    $objResponse->addAssign("divNav", "innerHTML", common::generateManageNav($skin));
    $objResponse->addAssign("divCopyright", "innerHTML", common::generateCopyright($skin));
    $objResponse->addScript("xajax_showGrid(0," . ROWSXPAGE . ",'','','')");
    return $objResponse;
}
コード例 #10
0
ファイル: systemstatus.server.php プロジェクト: ljhcj/IRISCC
/**
*  show extension status
*  @return	objResponse		object		xajax response object
*/
function showStatus($curhover)
{
    $objResponse = new xajaxResponse();
    $html .= "<br><br><br><br>";
    $html .= asterEvent::checkExtensionStatus(0, 'table', $curhover);
    $objResponse->addAssign("divStatus", "innerHTML", $html);
    $objResponse->addScript("menuFix();");
    return $objResponse;
}
コード例 #11
0
function init()
{
    global $locate;
    //,$config,$db;
    $objResponse = new xajaxResponse();
    $objResponse->addAssign("divNav", "innerHTML", common::generateManageNav($skin, $_SESSION['curuser']['country'], $_SESSION['curuser']['language']));
    $objResponse->addAssign("divCopyright", "innerHTML", common::generateCopyright($skin));
    $objResponse->addScript("xajax_showGrid(0," . ROWSXPAGE . ",'','','')");
    return $objResponse;
}
コード例 #12
0
ファイル: xajax.php プロジェクト: HaakonME/porticoestate
/**
 * callback if the session-check fails, redirects via xajax to login.php
 * 
 * @param array &$anon_account anon account_info with keys 'login', 'passwd' and optional 'passwd_type'
 * @return boolean/string true if we allow anon access and anon_account is set, a sessionid or false otherwise
 */
function xajax_redirect(&$anon_account)
{
    // now the header is included, we can set the charset
    $GLOBALS['xajax']->setCharEncoding('utf-8');
    define('XAJAX_DEFAULT_CHAR_ENCODING', 'utf-8');
    $response = new xajaxResponse();
    $response->addScript("location.href='" . $GLOBALS['phpgw_info']['server']['webserver_url'] . '/login.php?cd=10' . "';");
    header('Content-type: text/xml; charset=' . 'utf-8');
    echo $response->getXML();
    $GLOBALS['phpgw']->common->phpgw_exit();
}
コード例 #13
0
ファイル: changeusers.php プロジェクト: noikiy/owaspbwa
function chkPassword($value)
{
    $mtview_controller = new MTViewController();
    $matchResult = $mtview_controller->xajaxObjCall($value, 'CPW', 'password');
    $objResponse = new xajaxResponse();
    if ($matchResult) {
        $objResponse->addScript("addUpdate();");
    } else {
        $objResponse->addAlert($GLOBALS['lang_Admin_Users_ErrorsPasswordMismatch']);
    }
    return $objResponse->getXML();
}
コード例 #14
0
 function deleteEntry($entry_id)
 {
     $CI =& get_instance();
     $CI->load->model('feedback_model');
     $xajax_response = new xajaxResponse();
     if (is_numeric($entry_id) && $CI->feedback_model->DeleteFeedback($entry_id)) {
         $xajax_response->addAssign('new_entries', 'innerHTML', $CI->feedback_model->GetFeedbackCount());
         $xajax_response->addAssign('deleted_entries', 'innerHTML', $CI->feedback_model->GetFeedbackCount(1));
         $xajax_response->addAssign('feedback' . $entry_id, 'innerHTML', 'DELETED!');
         $xajax_response->addScript('Effect.BlindUp(\'container' . $entry_id . '\');');
     } else {
         $xajax_response->addAlert('Error deleting entry ' . $entry_id . ', reload the page and try again.');
     }
     return $xajax_response;
 }
コード例 #15
0
 function _list()
 {
     $this->load->model('static_model');
     $list = $this->static_model->GetDirectoryListing($this->config->item('static_local_path') . '/podcasts', '', array('mp3'));
     $db_list = $this->podcasts_model->Get_Fnames();
     $arguments = '';
     foreach ($list as $fname) {
         if (!in_array($fname, $db_list)) {
             $arguments = $arguments . ',"' . str_replace(array('/', '\\'), '', $fname) . '"';
         }
     }
     $objResponse = new xajaxResponse();
     $objResponse->addScript('list_response(' . substr($arguments, 1) . ');');
     return $objResponse;
 }
コード例 #16
0
/**
 * This function updates the progress bar
 * @param div_id where the progress bar is displayed
 * @param upload_id the identifier given in the field UPLOAD_IDENTIFIER
 */
function updateProgress($div_id, $upload_id, $waitAfterupload = false)
{
    $objResponse = new xajaxResponse();
    $ul_info = uploadprogress_get_info($upload_id);
    $percent = intval($ul_info['bytes_uploaded'] * 100 / $ul_info['bytes_total']);
    if ($waitAfterupload && $ul_info['est_sec'] < 2) {
        $percent = 100;
        $objResponse->addAssign($div_id . '_label', 'innerHTML', get_lang('UploadFile') . ' : ' . $percent . ' %');
        $objResponse->addAssign($div_id . '_waiter_frame', 'innerHTML', '<img src="' . api_get_path(WEB_CODE_PATH) . 'img/progress_bar.gif" />');
        $objResponse->addScript('clearInterval("myUpload.__progress_bar_interval")');
    }
    $objResponse->addAssign($div_id . '_label', 'innerHTML', get_lang('UploadFile') . ' : ' . $percent . ' %');
    $objResponse->addAssign($div_id . '_filled', 'style.width', $percent . '%');
    return $objResponse;
}
コード例 #17
0
function scribble($aFormValues)
{
    $sHandle = $aFormValues['handle'];
    $sWords = $aFormValues['words'];
    $objResponse = new xajaxResponse();
    $objGraffiti = new graffiti($sHandle, $sWords);
    $sErrMsg = $objGraffiti->save();
    if (!$sErrMsg) {
        $objResponse->addScript("xajax_updateWall();");
        $objResponse->addClear("words", "value");
    } else {
        $objResponse->addAlert($sErrMsg);
    }
    return $objResponse;
}
コード例 #18
0
ファイル: experimentales.php プロジェクト: arttesano/milfs
function tuitealo($form, $tipo)
{
    if ($tipo == 'formulario') {
        $formulario = formulario_areas('15', 'campos');
        $descripcion = remplacetas('form_id', 'id', '15', 'descripcion', "");
        $nombre = remplacetas('form_id', 'id', '15', 'nombre', "");
        $formulario = "\n\n\t\t<h1 >{$nombre['0']}</h1>\n\t\t<h2>{$descripcion['0']}</h2>\n\t<form id='form_tuitealo'  >\n\t {$formulario}\n\t<br>\n\n\t<div id='tuitealo_div'>\n\t\t<div id='tuitealo_error'></div>\n\t<a class='btn btn-block btn-primary' onclick=\"xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar');\">Previsualizar</a>\n\t</div>\n</form>\n\t</div>\n\t<br>\n\t<div  class='text-center'>\n\t<p class='text-center'>Powered by: <a href='http://qwerty.co/milfs'>MIFS</a></p> \t\n\t</div>\n\n\t<br>\t\t\n\t\t\n\t\t";
        return $formulario;
    }
    $respuesta = new xajaxResponse('utf-8');
    $sujeto = $form[84][0];
    $accion = $form[85][0];
    $verbo = $form[86][0];
    $tiempo = $form[87][0];
    $ht = $form[88][0];
    $mensaje = $form[83][0];
    $arroba = $form[82][0];
    if ($accion == "" or $verbo == "" or $tiempo == "" or $ht == "" or $arroba == "") {
        $error = "<div class='alert alert-warning text-center'><h1><i class='fa fa-exclamation-triangle'></i> Hay campos vacíos</h1></div>";
        $respuesta->addAssign("tuitealo_error", "innerHTML", "{$error}");
        return $respuesta;
    }
    $arroba = remplacetas('form_datos', 'control', "{$arroba}", 'contenido', "id_campo = '77'");
    $arroba = $arroba[0];
    $url_propia = urlencode("http://patos.redpatodos.co");
    $texto = "{$sujeto} {$accion} {$verbo} {$tiempo} {$ht} {$mensaje} cc {$arroba} ";
    $texto = ucfirst($texto);
    $texto_url = urlencode($texto);
    $largo = strlen($texto . $url_propia);
    if ($largo > 140) {
        $alert = "danger";
        $mensaje = "<i class='fa fa-exclamation-triangle'></i> El texto es demasiado largo y se recortará";
        $texto = substr($texto, 0, 140) . "...";
    } else {
        $alert = 'success';
        $mensaje = "";
    }
    $url = "https://twitter.com/share?url={$url_propia}&text={$texto_url}";
    $previsualizar = "<br> \n\t\t\t\n\t\t<div id='tuitealo_error'></div>\t\n\t<div class='alert alert-{$alert}'><div class='badge'>{$largo}</div>{$mensaje}<h1>{$texto}</h1></div>\n\n\t<a class='btn btn-block btn-primary' onclick=\"xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar');\">Previsualizar</a>\n\t<a class='btn btn-block btn-success' onclick=\"xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'confirmar');\">Tuitéalo</a>\n\t<img style='width:1px;' src='milfs/images/100x100.png' \n\t\t\tonload=\"\n\t\t\tdocument.getElementById('82[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};\n\t\t\tdocument.getElementById('83[0]').onkeyup = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};\n\t\t\tdocument.getElementById('84[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};\n\t\t\tdocument.getElementById('85[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};\n\t\t\tdocument.getElementById('86[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};\n\t\t\tdocument.getElementById('87[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};\n\t\t\tdocument.getElementById('88[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};\n\t\t\t\n\t\t\t\" >\n\t";
    if ($tipo == "previsualizar") {
        $respuesta->addAssign("tuitealo_div", "innerHTML", "{$previsualizar}");
        //$respuesta->addAlert("$texto $url");
    } else {
        ///$respuesta->addAssign("tuitealo_div","innerHTML","$url");
        $respuesta->addScript("window.location.href ='{$url}';");
    }
    return $respuesta;
}
コード例 #19
0
function showEditEmpStatForm($estatCode)
{
    $view_controller = new ViewController();
    $editArr = $view_controller->xajaxObjCall($estatCode, 'JOB', 'editEmpStat');
    $objResponse = new xajaxResponse();
    $objResponse->addScript("document.frmJobTitle.txtEmpStatDesc.disabled = false;");
    $objResponse->addScript("document.frmJobTitle.txtEmpStatID.value = '" . $editArr[0][0] . "';");
    $objResponse->addScript("document.frmJobTitle.txtEmpStatDesc.value = '" . $editArr[0][1] . "';");
    $objResponse->addScript("document.frmJobTitle.txtEmpStatDesc.focus();");
    $objResponse->addScript("document.frmJobTitle.txtEmpStatDesc.selectAll();");
    $objResponse->addScript("document.getElementById('layerEmpStat').style.visibility='visible';");
    $objResponse->addScript("document.getElementById('btnEmpStat').onclick=editFormData;");
    $objResponse->addAssign('status', 'innerHTML', '');
    return $objResponse->getXML();
}
コード例 #20
0
ファイル: process_alerts.inc.php プロジェクト: edt82/ona
function ws_process_alerts_submit($window_name, $form = '')
{
    global $conf, $self, $onadb, $tip_style;
    global $font_family, $color, $style, $images;
    $html = $js = '';
    // If an array in a string was provided, build the array and store it in $form
    $form = parse_options_string($form);
    printmsg("DEBUG => Processing Alerts:", 5);
    // FIXME: this code is called from html_desktop.inc.php.. however it is failing to process for some reason
    // The intent of this code is to be called to display a "message waiting" type icon in the top menu bar.
    // Check for messages that begin with SYS_ in the table_name_ref column
    list($status, $rows, $msg) = db_get_record($onadb, 'messages', "table_name_ref LIKE 'SYS_%'");
    if ($rows) {
        $js .= "if (el('sys_alert')) {el('sys_alert').style.visibility = 'visible';}";
    } else {
        $js .= "if (el('sys_alert')) {el('sys_alert').style.visibility = 'hidden';}";
    }
    $response = new xajaxResponse();
    if ($js) {
        $response->addScript($js);
    }
    return $response->getXML();
}
コード例 #21
0
ファイル: pasien.php プロジェクト: reekoheek/srmis
	function reset_pasien () {
		$objResponse = new xajaxResponse();
		$objResponse->addScript("document.tambah_pasien.reset()");
		$objResponse->addClear("id_pasien", "value");
		$objResponse->addAssign("list_tombol_besar_kunjungan", "style.display", "none");
		//$objResponse->addScriptCall("fokus", "id");
		return $objResponse;
	}
コード例 #22
0
ファイル: login.php プロジェクト: kleper/NuestraRED
function registro_express($formulario, $accion)
{
    $formulario = mysql_seguridad($formulario);
    //	if(is_array($formulario) ){$nombre_formulario = $formulario['nombre_formulario'];}else{$nombre_formulario = "$formulario";}
    if ($nombre_formulario == "") {
        $nombre_formulario = "login";
    }
    /*	
    foreach($formulario as $c=>$v){ 
    
    //LISTA ELEMENTOS DE UN ARRAY
    if (is_array($v) ){
    foreach($v as $C=>$V){
    		if($V != '') {$resultado .= "$$c =  \$formulario[$c][$C]; // <b>$V</b> </p>";}  
    							}
    								
    
    					} else {
    		if($v !='') {$resultado .= "$$c = \$formulario[$c]; // <b>$v</b> </p>";}
     								}
    									
    									}  
    */
    $boton = "<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('{$nombre_formulario}'),'confirmar')\">Grabar </div>";
    $respuesta = new xajaxResponse('utf-8');
    if ($accion == 'confirmar') {
        $div = "registro_confirmacion_email";
        if ($formulario[password_express_confirmar] == "" or $formulario[password_express_confirmar] != $formulario[password_express]) {
            $resultado = "<div class='alert alert-danger'>Por favor escribe y confirma una clave.</div> {$boton}";
            $respuesta->addAssign("password_express" . "_grupo", "className", " input-group has-error ");
            $respuesta->addAlert("Por favor escribe y confirma la clave");
            $respuesta->addScript("document.getElementById('password_express').focus(); ");
            $respuesta->addAssign("{$div}", "innerHTML", $resultado);
            return $respuesta;
        }
        if ($formulario[email_express_confirmar] != "") {
            $email_envio = $formulario['email_express_confirmar'];
            $rrn = rand(123, 999);
            $rrncode = MD5("{$rrn}");
            //	$aviso= aviso('','mail privacidad','');
            $direccion = remplacetas("empresa", "id", $id_empresa, "direccion", "");
            $telefono = remplacetas("empresa", "id", $id_empresa, "telefono", "");
            $web = remplacetas("empresa", "id", $id_empresa, "web", "");
            $email = remplacetas("empresa", "id", $id_empresa, "email", "");
            $imagen = remplacetas("empresa", "id", $id_empresa, "imagen", "");
            $razon_social = remplacetas("empresa", "id", $id_empresa, "razon_social", "");
            $slogan = remplacetas("empresa", "id", $id_empresa, "slogan", "");
            $headers = "MIME-Version: 1.0\r\n";
            $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
            $headers .= "From: Comunidad QWERTY.co <*****@*****.**>\r\n";
            $headers .= "Reply-To: comunidad@qwerty.co\r\n";
            $headers .= "Return-path: comunidad@qwerty.co\r\n";
            $asunto = "Código de validación";
            $cuerpo = "\n<div style='border: solid 1px; padding:20px ; border-radius: 10px; background-color:#E6F8E0 '>\n<h1>Comunidad QWERTY.co</h1>\n\n<hr />\n<h3>Código de validación</h3>\n<p>Bienvenido a nuestra comunidad <strong>QWERTY.co<strong> Por favor digita el siguente código para validar tu cuenta.</p>\n<H1>{$rrn}</H1>\n\n\n<h3>Toda la ayuda que necesitas la puedes encontrar en nuestra sección de respuestas a preguntas frecuentes: http://qwerty.co/faq.</h3>\n</div>\n\t\t{$aviso}\n\t\t\t";
            mail("{$email_envio}", "{$asunto}", "{$cuerpo}", "{$headers}");
            $boton = "<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('{$nombre_formulario}'),'validar');\">Confirmar</div>";
            $control = MD5(mktime() . $rrncode);
            $resultado .= "\n\t\t<div class='row'>\n\t\t\t<div class='col-sm-2'>\n\t\t\t</div>\n\t\t\t<div class='col-sm-8'>\n\t\t\t\t<div class='form-group has-error' id='codigo_confirmacion'>\n\t\t\t\t<span class='help-block'>Escribe el código de confirmación <strong>{$rrn}</strong></span>\n\t\t\t\t\t<div class='input-group'  id=''>\n\t\t\t\t\t\t<span class='input-group-addon'>\n\t\t\t\t\t\t\t<i class='fa fa-key'></i>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<input type='hidden' id='rrn' name='rrn' value='{$rrncode}'>\n\t\t\t\t\t\t<input type='hidden' id='hidden' name='control' value='{$control}'>\n\t\t\t\t\t\t<input type='number' id='codigo_confirmacion' name='codigo_confirmacion' placeholder='Codigo de validación' class='form-control'> \n\t\t\t\t\t</div>\n\t\t\t\t\n\t\t\t\t</div>\n\t\t\t</div>\t\t\t\n\t\t\t<div class='col-sm-2'>\n\t\t\t\n\t\t\t</div>\n\t\t</div>\t\n\t{$boton}\n\t";
        } else {
            $resultado .= "{$boton} <div class='alert alert-danger'>No hay un email válido </div>";
        }
        $respuesta->addAssign("{$div}", "innerHTML", $resultado);
        return $respuesta;
    } elseif ($accion == "elegir") {
        $form = "\n<div id='login_express'>\n\t<div class='' id='datos_usuario'>\n\t\t<div class='row' id=''>\t\n\t\t\t<div class='col-sm-6'>\n\t\t\t\t<div class='btn btn-primary  btn-block' onclick=\"xajax_registro_express(xajax.getFormValues('{$nombre_formulario}'),'nuevo');\" >Usuario nuevo</div>\n\t\t\t</div>\n\t\t\t<div class='col-sm-6'>\n\t\t\t\t<div class='btn btn-success btn-block'  data-target=\"#modal_login\" data-toggle=\"modal\" >Ya estoy registrado</div>\n\t\t\t<div>\n\t\t</div>\n\n\t</div>\n</div>\n\t\t              <a target='_blank' href='http://qwerty.co/faq/category/19/privacidad-y-protecci%C3%B3n-de-datos.html'>Antes de continuar, por favor revisa nuestras Políticas de privacidad y protección de datos.</a> </p> \n\t\t              ";
        return $form;
    } elseif ($accion == "validar") {
        $boton = "<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('{$nombre_formulario}'),'confirmar');\">Confirmar</div>";
        $div = "registro_confirmacion_email";
        if ($formulario[password_express_confirmar] == "" or $formulario[password_express_confirmar] != $formulario[password_express]) {
            $resultado = "<div class='alert alert-danger'>Por favor escribe y confirma una clave.</div> {$boton}";
            $respuesta->addAssign("password_express" . "_grupo", "className", " input-group has-error ");
            $respuesta->addAlert("Por favor escribe y confirma la clave");
            $respuesta->addScript("document.getElementById('password_express').focus(); ");
            $respuesta->addAssign("{$div}", "innerHTML", $resultado);
            return $respuesta;
        }
        $codigo_confirmacion = $formulario[codigo_confirmacion];
        //
        $rrn = $formulario[rrn];
        //
        $codificado = md5("{$codigo_confirmacion}");
        if ($rrn == $codificado) {
            $control = $formulario[control];
            // nuevo_
            $nombre_formulario = $formulario[nombre_formulario];
            // nuevo_
            $email_express = $formulario[email_express];
            // aa@gmail.com
            $email_express_confirmar = $formulario[email_express_confirmar];
            // aa@gmail.com
            $nombre_express = $formulario[nombre_express];
            // nombre
            $apellido_express = $formulario[apellido_express];
            // apellido
            $telefono_express = $formulario[telefono_express];
            // 324343
            $password_express = $formulario[password_express];
            // 1234
            $password_express_confirmar = $formulario[password_express_confirmar];
            // 23456
            $ip = obtener_ip();
            $link = Conectarse();
            mysql_query("SET NAMES 'utf8'");
            $consulta = "INSERT INTO usuarios (username,p_nombre,p_apellido,email,bio,passwd,control,status,lastip,id_empresa) \n\t\t\t\tVALUES ('{$email_express_confirmar}','{$nombre_express}','{$apellido_express}','{$email_express_confirmar}','','" . MD5($password_express_confirmar) . "','{$control}','1','{$ip}','{$_SESSION['id_empresa']}')";
            $sql_consulta = mysql_query($consulta, $link);
            if ($sql_consulta) {
                $id = mysql_insert_id();
                $consulta_localizacion = "INSERT INTO localizacion (id_localizado,telefono,id_grupo) VALUES ('{$id}','{$telefono_express}','1')";
                $consulta_empresa = "INSERT INTO empresa SET razon_social = '{$nombre_express} {$nombre_express}', regimen_tributario = 'simplificado' ,id_responsable='{$id}'";
                $sql_localizacion = mysql_query($consulta_localizacion, $link);
                //$sql_empresa=mysql_query($consulta_empresa,$link);
                if ($sql_empresa) {
                    $id_empresa = mysql_insert_id();
                    $_SESSION[id_empresa] = $id_empresa;
                    $_SESSION[id] = $id;
                }
                //// faltan variables de session
            }
            $resultado = "<div class='alert alert-success'><h1>Bienvenido</h1>\n<p>Felicitaciones, tu registro se efectuó correctamente, ahora puedes usar nuestros servicios.</p>\n</div>";
            $div = "contenido";
            $respuesta->addAssign("{$div}", "innerHTML", $resultado);
            return $respuesta;
        } else {
            $resultado = "<div class='alert alert-danger'><h3>Error</h3>El Código de confirmación no es correcto, por favor inténtalo nuevamente.</div>";
        }
        $resultado .= "{$boton}";
        $respuesta->addAssign("{$div}", "innerHTML", $resultado);
        return $respuesta;
    } elseif ($accion == "nuevo") {
        //$respuesta = new xajaxResponse('utf-8');
        $div = "contenido";
        $form = "\n<div class='alert alert-warning'>\n<form class='form' id='{$nombre_formulario}' name='{$nombre_formulario}' >\n<input type='hidden' value = 'nuevo_{$nombre_formato}' id='nombre_formulario' name='nombre_formulario' >\n\t<legend>Datos de contacto</legend>\n\t\t<div class='row'>\n\t\t\t<div class='col-sm-6'>\n\t\t\t\t<div class='input-group' id='email_express_grupo'>\n\t\t\t\t\t<span class='input-group-addon'>\n\t\t\t\t\t\t<i class='fa fa-envelope-o'></i>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input value=''  type='email' id='email_express' name='email_express' placeholder='Email' class='form-control'\n\t\t\t\t\t\tonclick=\"(this.value=''); \"\n\t\t\t\t\t \tonchange=\"xajax_validar_usuario('email',(this.value),'email_express','login'); \"  > \n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class='col-sm-6'>\n\t\t\t\t\n\t\t\t\t<div class='input-group' id='email_express_confirmar_grupo'>\n\t\t\t\t\t<span class='input-group-addon'>\n\t\t\t\t\t\t<i class='fa fa-envelope'></i>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input value='' type='email' id='email_express_confirmar' name='email_express_confirmar' placeholder='Confirmar email' class='form-control'\n\t\t\t\t\tonclick=\"(this.value=''); \"\n\t\t\t\t\tonchange= \"xajax_confirma_campo((document.getElementById('email_express').value),(this.value),'email_express','email_express_confirmar'); \"  > \n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class='row'>\n\t\t\t<div class='col-sm-12'>\n\t\t\t\t<div class='input-group' id='nombre_express'>\n\t\t\t\t\t<span class='input-group-addon'>\n\t\t\t\t\t\t<i class='fa fa-user'></i>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input type='text' id='nombre_express' name='nombre_express' placeholder='Nombre' class='form-control'> \n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class='row'>\n\t\t\t<div class='col-sm-12'>\n\t\t\t\t<div class='input-group' id='apellido_express'>\n\t\t\t\t\t<span class='input-group-addon'>\n\t\t\t\t\t\t<i class='fa fa-user '></i>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input type='text' id='apellido_express' name='apellido_express' placeholder='Apellido' class='form-control'> \n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class='row'>\n\t\t\t<div class='col-sm-12'>\n\t\t\t\t<div class='input-group' id='telefono_express'>\n\t\t\t\t\t\n\t\t\t\t\t<span class='input-group-addon'>\n\t\t\t\t\t\t<i class='fa fa-phone'></i>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input type='phone' id='telefono_express' name='telefono_express' placeholder='Teléfono' class='form-control' \n\t\t\t\t\tonclick=\"(this.value=''); \"> \n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class='row'>\n\t\t\t<div class='col-sm-6'>\n\t\t\t\t<div class='input-group' id='password_express_grupo'>\n\t\t\t\t\t<span class='input-group-addon'>\n\t\t\t\t\t\t<i class='fa fa-key'></i>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input type='password' id='password_express' name='password_express' placeholder='Clave' class='form-control'\n\t\t\t\t\tonclick=\"(this.value=''); \"> \n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class='col-sm-6'>\n\t\t\t\t<div class='input-group' id='password_express_confirmar_grupo'>\n\t\t\t\t\t<span class='input-group-addon'>\n\t\t\t\t\t\t<i class='fa fa-lock'></i>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input type='password' id='password_express_confirmar' name='password_express_confirmar' placeholder='Confirma tu clave' class='form-control'\n\t\t\t\t\tonclick=\"(this.value=''); \"\n\t\t\t\t\tonchange= \"xajax_confirma_campo((document.getElementById('password_express').value),(this.value),'password_express','password_express_confirmar'); \" > \n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class='row'>\n\t\t\t<div class='col-sm-12'>\n\t\t\t\t<br>\n\t\t\t\t<div id='registro_confirmacion_email'>\t\t\t\t\n{$boton}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>\n\t\t</div>\n\n</form>\n</div>\n";
        $respuesta->addAssign("{$div}", "innerHTML", $form);
        return $respuesta;
    } elseif ($accion == "boton") {
        $modal = "      \n\t\t<form class='navbar-form navbar-left' role='form' id='form_contacto' name='form_contacto'>\n        <div class='form-group'>\n          <input type='text' class='form-control input-small' placeholder='Email o usuario' id='email' name='email'>\n        </div>\n        <div class='form-group'>\n          <input type='password' class='form-control input-small' placeholder='Clave ****' id='password' name='password'>\n        </div>\n        <div  class='btn btn-default' onclick=\"xajax_revisar_ingreso(xajax.getFormValues('form_contacto')) ; \"><i class='fa fa-sign-in fa-fw'></i></div>\n      </form>";
        return;
        //$modal;
    } else {
    }
    $respuesta->addAssign("{$div}", "innerHTML", $resultado);
    return $respuesta;
}
コード例 #23
0
ファイル: list_interfaces.inc.php プロジェクト: edt82/ona
function ws_display_list($window_name, $form = '')
{
    global $conf, $self, $onadb;
    global $images, $color, $style;
    $html = '';
    $js = '';
    // If the user supplied an array in a string, build the array and store it in $form
    $form = parse_options_string($form);
    // Find the "tab" we're on
    $tab = $_SESSION['ona'][$form['form_id']]['tab'];
    // Build js to refresh this list
    $refresh = "xajax_window_submit('{$window_name}', xajax.getFormValues('{$form['form_id']}'), 'display_list');";
    // If this is the display_host screen that called, add refresh for DNS records too
    if ($form['content_id'] == 'display_host_list_interfaces') {
        $refresh .= "xajax_window_submit('list_records', xajax.getFormValues('list_records_filter_form'), 'display_list');";
    }
    // If it's not a new query, load the previous query from the session
    // into $form and save the current page and filter in the session.
    // Also find/set the "page" we're viewing
    $page = 1;
    if ($form['page'] and is_numeric($form['page'])) {
        $form = array_merge($form, (array) $_SESSION['ona'][$form['form_id']][$tab]['q']);
        $_SESSION['ona'][$form['form_id']][$tab]['page'] = $page = $form['page'];
        $_SESSION['ona'][$form['form_id']][$tab]['filter'] = $form['filter'];
    }
    // Calculate the SQL query offset (based on the page being displayed)
    $offset = $conf['search_results_per_page'] * ($page - 1);
    if ($offset == 0) {
        $offset = -1;
    }
    // Search results go in here
    $results = array();
    $count = 0;
    // Start building the "where" clause for the sql query to find the interfaces to display
    $where = "";
    $and = "";
    // HOST ID
    if ($form['host_id']) {
        $where .= $and . "host_id = " . $onadb->qstr($form['host_id']) . " OR id in (select interface_id from interface_clusters where host_id = " . $onadb->qstr($form['host_id']) . ")";
        $and = " AND ";
    }
    // Do the SQL Query
    $filter = '';
    if ($form['filter']) {
        $form['filter'] = ip_mangle($form['filter']);
        $filter = $and . ' ip_addr LIKE ' . $onadb->qstr('%' . $form['filter'] . '%');
    }
    list($status, $rows, $results) = db_get_records($onadb, 'interfaces', $where . $filter, "ip_addr ASC", $conf['search_results_per_page'], $offset);
    // If we got less than serach_results_per_page, add the current offset to it
    // so that if we're on the last page $rows still has the right number in it.
    if ($rows > 0 and $rows < $conf['search_results_per_page']) {
        $rows += $conf['search_results_per_page'] * ($page - 1);
    }
    // Re-Count only "internal" interfaces, not nat interfaces
    list($status, $rows, $records) = db_get_records($onadb, 'interfaces', 'nat_interface_id = \'0\' and ' . $where . $filter, "", 0);
    $count = $rows;
    $html .= <<<EOL
        <!-- Interface List -->
        <table id="{$form['form_id']}_interface_list" class="list-box" cellspacing="0" border="0" cellpadding="0">

            <!-- Table Header -->
            <tr>

                <td colspan="2" class="list-header" align="center" style="{$style['borderR']};">Interface</td>
                <td class="list-header" align="center" style="{$style['borderR']};">Subnet</td>
                <td class="list-header" align="center" style="{$style['borderR']};">MAC</td>
                <td class="list-header" align="center" style="{$style['borderR']};">Name</td>
                <td class="list-header" align="center" style="{$style['borderR']};">Description</td>
                <td class="list-header" align="center" style="{$style['borderR']};">Last Response</td>
                <td class="list-header" align="center">&nbsp;</td>
            </tr>
EOL;
    // Loop and display each record
    foreach ($results as $record) {
        // Get additional info about each host record //
        // Check if this interface has an external NAT
        unset($extnatint, $extnatdisplay, $extnatdisplay, $extnatsubdisplay);
        if ($record['nat_interface_id'] > 0) {
            list($status, $rows, $extnatint) = ona_get_interface_record(array('id' => $record['nat_interface_id']));
            // GDO: get the subnet object of the NATing interface, display it in both Interface and Subnet columns
            list($status, $rows, $extnatintsub) = ona_get_subnet_record(array('id' => $extnatint['subnet_id']));
            $extnatint['ip_addr'] = ip_mangle($extnatint['ip_addr'], 'dotted');
            //$extnatdisplay = "<span title='Interface is NATed to {$extnatint['ip_addr']}'> &nbsp;&nbsp;=> &nbsp;{$extnatint['ip_addr']}</span>";
            $extnatdisplay = "<span title='Interface is NATed to {$extnatint['ip_addr']} (on {$extnatintsub['name']})'> &nbsp;&nbsp;=> &nbsp;{$extnatint['ip_addr']}</span>";
            $extnatsubdisplay = " => <a title=\"View NATed subnet. ID: {$extnatintsub['id']}\"\n                                            class=\"nav\"\n                                            onClick=\"xajax_window_submit('work_space', 'xajax_window_submit(\\'display_subnet\\', \\'subnet_id=>{$extnatintsub['id']}\\', \\'display\\')');\"\n                                         >{$extnatintsub['name']}</a>";
        }
        // Check if this interface is an external NAT for another interface
        list($isnatstatus, $isnatrows, $isnat) = db_get_records($onadb, 'interfaces', "nat_interface_id = {$record['id']}", '', 0);
        // If the current interface is external NAT for another, dont display it in the list.
        if ($isnatrows > 0) {
            continue;
        }
        list($status, $intclusterrows, $intcluster) = db_get_records($onadb, 'interface_clusters', "interface_id = {$record['id']}");
        // Grab some info from the associated subnet record
        list($status, $rows, $subnet) = ona_get_subnet_record(array('id' => $record['subnet_id']));
        $record['ip_mask'] = $subnet['ip_mask'];
        $record['subnet_id'] = $subnet['id'];
        $record['subnet_description'] = $subnet['name'];
        // Convert IP and Netmask to a presentable format
        $record['ip_addr'] = ip_mangle($record['ip_addr'], 'dotted');
        $record['ip_mask'] = ip_mangle($record['ip_mask'], 'dotted');
        $record['ip_mask_cidr'] = ip_mangle($record['ip_mask'], 'cidr');
        if ($record['mac_addr']) {
            $record['mac_addr'] = mac_mangle($record['mac_addr']);
        }
        $record['description_short'] = truncate($record['description'], 40);
        // Escape data for display in html
        foreach (array_keys($record) as $key) {
            $record[$key] = htmlentities($record[$key], ENT_QUOTES, $conf['php_charset']);
        }
        // Format the date and colorize if its older than 2 months
        if ($record['last_response']) {
            $record['last_response_fmt'] = date($conf['date_format'], strtotime($record['last_response']));
            if (strtotime($record['last_response']) < strtotime('-2 month')) {
                $record['last_response_fmt'] = "<span style=\"color: red;\">" . $record['last_response_fmt'] . "</style>";
            }
        }
        $html .= <<<EOL
            <tr onMouseOver="this.className='row-highlight'" onMouseOut="this.className='row-normal'">

                <td nowrap="true" class="list-row" style="padding: 0px;" width="16px">
EOL;
        // Display cluster related information
        $clusterhtml = '&nbsp;';
        $clusterstyle = '';
        $clusterscript = '';
        if ($intclusterrows > 0) {
            $clusterstyle = 'font-weight: bold';
            $clusterscript = "onMouseOver=\"wwTT(this, event,\n                        'id', 'tt_interface_cluster_list_{$record['id']}',\n                        'type', 'velcro',\n                        'styleClass', 'wwTT_niceTitle',\n                        'direction', 'south',\n                        'javascript', 'xajax_window_submit(\\'tooltips\\', \\'tooltip=>interface_cluster_list,id=>tt_interface_cluster_list_{$record['id']},interface_id=>{$record['id']}\\');'\n                        );\"";
            $clusterhtml .= <<<EOL
                    <img src="{$images}/silk/sitemap.png" border="0" {$clusterscript} />
EOL;
        }
        $html .= $clusterhtml;
        $html .= <<<EOL
                </td>

                <td class="list-row">
EOL;
        // MP: Disabling the display_interface link. I dont think this will be needed
        if (1 < 0) {
            $html .= <<<EOL
                    <a title="View interface. ID: {$record['id']}"
                       class="nav"
                       onClick="xajax_window_submit('work_space', 'xajax_window_submit(\\'display_interface\\',\\'interface_id=>{$record['id']}\\', \\'display\\')');">
                        {$record['ip_addr']}
                        </a>
EOL;
        } else {
            $html .= "<span style='{$clusterstyle}' {$clusterscript}>{$record['ip_addr']}</span>";
        }
        $html .= <<<EOL
                    <span style="{$clusterstyle}" title="{$record['ip_mask']}">/{$record['ip_mask_cidr']}</span> {$extnatdisplay}
                </td>

                <td class="list-row" align="left">
                    <a title="View subnet. ID: {$subnet['id']}"
                       class="nav"
                       onClick="xajax_window_submit('work_space', 'xajax_window_submit(\\'display_subnet\\', \\'subnet_id=>{$subnet['id']}\\', \\'display\\')');"
                    >{$record['subnet_description']}</a> {$extnatsubdisplay}
                </td>

                <td class="list-row" align="right">
                    {$record['mac_addr']}&nbsp;
                </td>

                <td class="list-row" align="left">
                    {$record['name']}&nbsp;
                </td>

                <td class="list-row" align="left" title="{$record['description']}">
                    {$record['description_short']}&nbsp;
                </td>

                <td class="list-row" align="left" title="{$record['last_response']}">
                    {$record['last_response_fmt']}&nbsp;
                </td>

                <td class="list-row" align="right">
                    <form id="{$form['form_id']}_list_interface_{$record['id']}"
                        ><input type="hidden" name="interface_id" value="{$record['id']}"
                        ><input type="hidden" name="js" value="{$refresh}"
                    ></form>&nbsp;
EOL;
        if (auth('interface_modify')) {
            $html .= <<<EOL

                    <a title="Interface Menu"
                       id="int_menu_button_{$record['id']}"
                       class="act"
                       onmouseover="wwTT(this, event,
                                            'id', 'tt_quick_interface_menu_{$record['id']}',
                                            'type', 'velcro',
                                            'delay', 0,
                                            'styleClass', 'wwTT_int_menu',
                                            'lifetime', 1000,
                                            'direction', 'west',
                                            'javascript', 'xajax_window_submit(\\'tooltips\\', \\'tooltip=>quick_interface_menu,id=>tt_quick_interface_menu_{$record['id']},interface_id=>{$record['id']},ip_addr=>{$record['ip_addr']},orig_host=>{$record['host_id']},form_id=>{$form['form_id']}_list_interface_{$record['id']},subnet_id=>{$subnet['id']},natip=>{$record['nat_interface_id']}\\');'
                                           );"
                    ><img src="{$images}/silk/add.png" border="0"></a>&nbsp;
EOL;
        }
        if (auth('interface_modify')) {
            $html .= <<<EOL

                    <a title="Edit interface. ID: {$record['id']}"
                       class="act"
                       onClick="xajax_window_submit('edit_interface', xajax.getFormValues('{$form['form_id']}_list_interface_{$record['id']}'), 'editor');"
                    ><img src="{$images}/silk/page_edit.png" border="0"></a>&nbsp;
EOL;
        }
        if (auth('interface_del')) {
            $html .= <<<EOL

                    <a title="Delete interface"
                       class="act"
                       onClick="xajax_window_submit('edit_interface', xajax.getFormValues('{$form['form_id']}_list_interface_{$record['id']}'), 'delete');"
                    ><img src="{$images}/silk/delete.png" border="0"></a>&nbsp;
EOL;
        }
        $html .= <<<EOL
                </td>

            </tr>
EOL;
    }
    if ($count == 0 and $form['host_id'] and !$form['filter']) {
        $html .= <<<EOL
     <tr><td colspan="99" align="center" style="color: red;">Please add an interface to this host, or delete the host</td></tr>
EOL;
    }
    $html .= <<<EOL
    </table>
EOL;
    // Build page links if there are any
    $html .= get_page_links($page, $conf['search_results_per_page'], $count, $window_name, $form['form_id']);
    // Insert the new html into the content div specified
    // Instantiate the xajaxResponse object
    $response = new xajaxResponse();
    $response->addAssign("{$form['form_id']}_{$tab}_count", "innerHTML", "({$count})");
    $response->addAssign($form['content_id'], "innerHTML", $html);
    if ($js) {
        $response->addScript($js);
    }
    return $response->getXML();
}
コード例 #24
0
function PasteBlock($sid, $name)
{
    $objResponse = new xajaxResponse();
    global $userbank, $username;
    $sid = (int) $sid;
    if (!$userbank->HasAccess(ADMIN_OWNER | ADMIN_ADD_BAN)) {
        $objResponse->redirect("index.php?p=login&m=no_access", 0);
        $log = new CSystemLog("w", "Hacking Attempt", $username . " tried paste a block, but doesn't have access.");
        return $objResponse;
    }
    require INCLUDES_PATH . '/CServerRcon.php';
    //get the server data
    $data = $GLOBALS['db']->GetRow("SELECT ip, port, rcon FROM " . DB_PREFIX . "_servers WHERE sid = ?;", array($sid));
    if (empty($data['rcon'])) {
        $objResponse->addScript("\$('dialog-control').setStyle('display', 'block');");
        $objResponse->addScript("ShowBox('Error', 'No RCON password for server " . $data['ip'] . ":" . $data['port'] . "!', 'red', '', true);");
        return $objResponse;
    }
    $r = new CServerRcon($data['ip'], $data['port'], $data['rcon']);
    if (!$r->Auth()) {
        $GLOBALS['db']->Execute("UPDATE " . DB_PREFIX . "_servers SET rcon = '' WHERE sid = ?;", array($sid));
        $objResponse->addScript("\$('dialog-control').setStyle('display', 'block');");
        $objResponse->addScript("ShowBox('Error', 'Wrong RCON password for server " . $data['ip'] . ":" . $data['port'] . "!', 'red', '', true);");
        return $objResponse;
    }
    $ret = $r->rconCommand("status");
    $search = preg_match_all(STATUS_PARSE, $ret, $matches, PREG_PATTERN_ORDER);
    $i = 0;
    $found = false;
    $index = -1;
    foreach ($matches[2] as $match) {
        if ($match == $name) {
            $found = true;
            $index = $i;
            break;
        }
        $i++;
    }
    if ($found) {
        $steam = $matches[3][$index];
        $name = $matches[2][$index];
        $objResponse->addScript("\$('nickname').value = '" . addslashes($name) . "'");
        $objResponse->addScript("\$('steam').value = '" . $steam . "'");
    } else {
        $objResponse->addScript("ShowBox('Error', 'Can\\'t get player info for " . addslashes(htmlspecialchars($name)) . ". Player is not on the server (" . $data['ip'] . ":" . $data['port'] . ") anymore!', 'red', '', true);");
        $objResponse->addScript("\$('dialog-control').setStyle('display', 'block');");
        return $objResponse;
    }
    $objResponse->addScript("SwapPane(0);");
    $objResponse->addScript("\$('dialog-control').setStyle('display', 'block');");
    $objResponse->addScript("\$('dialog-placement').setStyle('display', 'none');");
    return $objResponse;
}
コード例 #25
0
ファイル: agent.server.php プロジェクト: ljhcj/IRISCC
function searchFormSubmit($searchFormValue, $numRows = null, $limit = null, $id = null, $type = null)
{
    global $locate, $db;
    $objResponse = new xajaxResponse();
    $searchField = array();
    $searchContent = array();
    $optionFlag = $searchFormValue['optionFlag'];
    $searchContent = $searchFormValue['searchContent'];
    //搜索内容 数组
    $searchField = $searchFormValue['searchField'];
    //搜索条件 数组
    $searchType = $searchFormValue['searchType'];
    $ordering = $searchFormValue['ordering'];
    $order = $searchFormValue['order'];
    $divName = "grid";
    if ($optionFlag == "export") {
        $sql = astercrm::getSql($searchContent, $searchField, $searchType, 'astercrm_account');
        //得到要导出的sql语句
        $_SESSION['export_sql'] = $sql;
        $objResponse->addAssign("hidSql", "value", $sql);
        //赋值隐含域
        $objResponse->addScript("document.getElementById('exportForm').submit();");
    } elseif ($optionFlag == "delete") {
        astercrm::deletefromsearch($searchContent, $searchField, $searchType, 'astercrm_account');
        $html = createGrid($searchFormValue['numRows'], $searchFormValue['limit'], '', '', $order, $divName, $ordering, '');
        $objResponse->addClear("msgZone", "innerHTML");
        $objResponse->addAssign($divName, "innerHTML", $html);
    } elseif ($type == "delete") {
        $arreglo =& Customer::getAllRecords($start, $limit, $order, $_SESSION['curuser']['groupid']);
        $content = '';
        foreach ($arreglo as $agents) {
            if ($agents['agent'] == $id) {
                continue;
            } else {
                $addstr = "\nagent => " . trim($agents['agent']) . ',' . trim($agents['password']) . ',' . trim($agents['name']);
            }
            $content .= $addstr;
        }
        $agentsfile = '/etc/asterisk/agents_astercc.conf';
        if ($fhandle = fopen($agentsfile, 'w')) {
            fwrite($fhandle, $content);
            $html = createGrid($searchFormValue['numRows'], $searchFormValue['limit'], $searchField, $searchContent, $order, $divName, $ordering, $searchType);
            $objResponse = new xajaxResponse();
            $objResponse->addAssign("msgZone", "innerHTML", $locate->Translate("delete_rec"));
            $objResponse->addAssign($divName, "innerHTML", $html);
        } else {
            $objResponse->addAssign("msgZone", "innerHTML", $locate->Translate("rec_cannot_delete"));
        }
    } else {
        $html = createGrid($numRows, $limit, $searchField, $searchContent, $order, $divName, $ordering, $searchType);
        $objResponse->addClear("msgZone", "innerHTML");
        $objResponse->addAssign($divName, "innerHTML", $html);
    }
    return $objResponse->getXML();
}
コード例 #26
0
function _data_preset_rra_item_xajax_remove($preset_rra_id) {
	require_once(CACTI_BASE_PATH . "/lib/data_preset/data_preset_rra_update.php");
	require_once(CACTI_BASE_PATH . "/lib/data_preset/data_preset_rra_info.php");
	require_once(CACTI_BASE_PATH . "/lib/data_template/data_template_update.php");
	require_once(CACTI_BASE_PATH . "/lib/data_template/data_template_info.php");
	require_once(CACTI_BASE_PATH . "/lib/data_source/data_source_update.php");
	require_once(CACTI_BASE_PATH . "/lib/data_source/data_source_info.php");

	$objResponse = new xajaxResponse();

	if (basename($_SERVER["PHP_SELF"]) == "presets_rra.php") {
		$preset_rra_item = api_data_preset_rra_item_get($preset_rra_id);
		$result = api_data_preset_rra_item_remove($preset_rra_id);
	}else if (basename($_SERVER["PHP_SELF"]) == "data_templates.php") {
		$preset_rra_item = api_data_template_rra_item_get($preset_rra_id);
		$result = api_data_template_rra_item_remove($preset_rra_id);
	}else if (basename($_SERVER["PHP_SELF"]) == "data_sources.php") {
		$preset_rra_item = api_data_source_rra_item_get($preset_rra_id);
		$result = api_data_source_rra_item_remove($preset_rra_id);
	}else{
		return false;
	}

	if ($result) {
		if (basename($_SERVER["PHP_SELF"]) == "presets_rra.php") {
			$num_items = sizeof(api_data_preset_rra_item_list($preset_rra_item["preset_rra_id"]));
		}else if (basename($_SERVER["PHP_SELF"]) == "data_templates.php") {
			$num_items = sizeof(api_data_template_rra_item_list($preset_rra_item["data_template_id"]));
		}else if (basename($_SERVER["PHP_SELF"]) == "data_sources.php") {
			$num_items = sizeof(api_data_source_rra_item_list($preset_rra_item["data_source_id"]));
		}

		/* if there are no rra items left, do not remove the row from the form but instead mark it as "new" */
		if ($num_items == 0) {
			$objResponse->addScript("remove_rra_item_last_row(\"$preset_rra_id\");");
		/* if there is at least one rra item left, visibly remove the row from the page */
		}else{
			$objResponse->addScript("remove_rra_item_row(\"$preset_rra_id\");");
		}
	}else{
		$objResponse->addAlert("Error removing RRA preset item!");
	}

	return $objResponse->getXML();
}
コード例 #27
0
ファイル: login.server.php プロジェクト: ljhcj/IRISCC
/**
*  function to verify user data
*	
*  	@param $aFormValues	(array)			login form data
															$aFormValues['username']
															$aFormValues['password']
															$aFormValues['locate']
*	@return $objResponse
*  @session
															$_SESSION['curuser']['username']
															$_SESSION['curuser']['extension']
															$_SESSION['curuser']['extensions']
															$_SESSION['curuser']['country']
															$_SESSION['curuser']['language']
															$_SESSION['curuser']['channel']
															$_SESSION['curuser']['accountcode']
*/
function processAccountData($aFormValues)
{
    global $db, $config;
    list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']);
    //get locate parameter
    $locate = new Localization($_SESSION['curuser']['country'], $_SESSION['curuser']['language'], 'login');
    $objResponse = new xajaxResponse();
    $bError = false;
    $loginError = false;
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
        if ($_SERVER["HTTP_CLIENT_IP"]) {
            $proxy = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $proxy = $_SERVER["REMOTE_ADDR"];
        }
    } else {
        if (isset($_SERVER["HTTP_CLIENT_IP"])) {
            $ip = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $ip = $_SERVER["REMOTE_ADDR"];
        }
    }
    $log = array();
    $log['action'] = 'login';
    $log['ip'] = $ip;
    $log['username'] = $aFormValues['username'];
    $log['usertype'] = 'clid';
    $query = "SELECT * FROM account_log WHERE ip='" . $ip . "' AND action='login' ORDER BY id DESC LIMIT 1";
    $res = $db->query($query);
    if ($res->fetchInto($this_ip_log)) {
        $failedtimes = $this_ip_log['failedtimes'];
    }
    if ($failedtimes >= $config['system']['max_incorrect_login'] && $config['system']['max_incorrect_login'] > 0) {
        $objResponse->addAlert($locate->Translate("login failed,your ip is locked for login"));
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
        return $objResponse;
    }
    if (!$bError) {
        $query = "SELECT * from clid where clid ='" . $aFormValues['username'] . "'";
        $res = $db->query($query);
        if ($res->fetchInto($clid)) {
            $log['account_id'] = $clid['id'];
            if ($clid['pin'] == $aFormValues['password']) {
                $log['status'] = 'success';
                $log['failedtimes'] = 0;
                if ($aFormValues['rememberme'] == "forever") {
                    // set cookies for three years
                    setcookie("username", $aFormValues['username'], time() + 94608000);
                    setcookie("password", $aFormValues['password'], time() + 94608000);
                    setcookie("language", $aFormValues['locate'], time() + 94608000);
                } else {
                    // destroy cookies
                    setcookie("username", "", time() - 3600);
                    setcookie("password", "", time() - 3600);
                    setcookie("language", "", time() - 3600);
                    $username = '';
                    $password = '';
                    $language = 'en_US';
                    $checked = false;
                }
                $_SESSION['curuser']['username'] = trim($aFormValues['username']);
                $_SESSION['curuser']['usertype'] = "clid";
                $_SESSION['curuser']['clidid'] = $clid['id'];
                $_SESSION['curuser']['groupid'] = $clid['groupid'];
                list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']);
                $configstatus = common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig);
                if ($configstatus == -2) {
                    $html = "(fail to read " . $config['system']['astercc_path'] . "/astercc.conf)";
                    return $html;
                } else {
                    $billingfield = trim($asterccConfig['system']['billingfield']);
                    if ($billingfield == 'accountcode') {
                        $_SESSION['curuser']['billingfield'] = $billingfield;
                    }
                }
                //$objResponse->addAlert($locate->Translate("login_success"));
                $objResponse->addScript('window.location.href="cdr.php";');
            } else {
                $log['failedtimes'] = $failedtimes + 1;
                $log['status'] = 'failed';
                $log['failedcause'] = 'incorrect password';
                $loginError = true;
            }
        } else {
            $log['failedtimes'] = $failedtimes + 1;
            $log['account_id'] = 0;
            $log['status'] = 'failed';
            $log['failedcause'] = 'notexistent clid';
            $loginError = true;
        }
        astercrm::insertAccountLog($log);
        if (!$loginError) {
            return $objResponse;
        } else {
            $objResponse->addAlert($locate->Translate("login_failed"));
            $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
            $objResponse->addAssign("loginButton", "disabled", false);
            return $objResponse;
        }
    } else {
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
    }
    return $objResponse;
}
コード例 #28
0
ファイル: manager_login.server.php プロジェクト: ljhcj/IRISCC
/**
*  function to verify user data
*	
*  	@param $aFormValues	(array)			login form data
															$aFormValues['username']
															$aFormValues['password']
															$aFormValues['locate']
*	@return $objResponse
*  @session
															$_SESSION['curuser']['username']
															$_SESSION['curuser']['extension']
															$_SESSION['curuser']['extensions']
															$_SESSION['curuser']['country']
															$_SESSION['curuser']['language']
															$_SESSION['curuser']['channel']
															$_SESSION['curuser']['accountcode']
*/
function processAccountData($aFormValues)
{
    global $db, $config;
    list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']);
    //get locate parameter
    $locate = new Localization($_SESSION['curuser']['country'], $_SESSION['curuser']['language'], 'login');
    $objResponse = new xajaxResponse();
    /* check whether the pear had been installed */
    $pear_exists_result = class_exists('PEAR');
    if (empty($pear_exists_result)) {
        $objResponse->addAlert($locate->Translate("Please install php pear"));
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
        return $objResponse;
    }
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
        if ($_SERVER["HTTP_CLIENT_IP"]) {
            $proxy = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $proxy = $_SERVER["REMOTE_ADDR"];
        }
    } else {
        if (isset($_SERVER["HTTP_CLIENT_IP"])) {
            $ip = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $ip = $_SERVER["REMOTE_ADDR"];
        }
    }
    $query = "SELECT * FROM account_log WHERE ip='" . $ip . "' AND action='login' ORDER BY id DESC LIMIT 1";
    $res = $db->query($query);
    if ($res->fetchInto($this_ip_log)) {
        $failedtimes = $this_ip_log['failedtimes'];
    }
    $log = array();
    $log['action'] = 'login';
    $log['ip'] = $ip;
    $log['username'] = $aFormValues['username'];
    if ($failedtimes >= $config['system']['max_incorrect_login'] && $config['system']['max_incorrect_login'] > 0) {
        $objResponse->addAlert($locate->Translate("login failed,your ip is locked for login"));
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
        return $objResponse;
    }
    $bError = false;
    $loginError = false;
    if (!$bError) {
        $query = "SELECT account.*, accountgroup.accountcode,accountgroup.allowcallback as allowcallbackgroup,resellergroup.allowcallback as allowcallbackreseller,accountgroup.limittype FROM account LEFT JOIN accountgroup ON accountgroup.id = account.groupid LEFT JOIN resellergroup ON resellergroup.id = account.resellerid WHERE username='******'username'] . "'";
        $res = $db->query($query);
        if ($res->fetchInto($list)) {
            $log['account_id'] = $list['id'];
            $log['usertype'] = $list['usertype'];
            if ($list['password'] == $aFormValues['password']) {
                $log['status'] = 'success';
                $log['failedtimes'] = 0;
                if ($aFormValues['rememberme'] == "forever") {
                    // set cookies for three years
                    setcookie("username", $aFormValues['username'], time() + 94608000);
                    setcookie("password", $aFormValues['password'], time() + 94608000);
                    setcookie("language", $aFormValues['locate'], time() + 94608000);
                    setcookie("pagestyle", $aFormValues['pagestyle'], time() + 94608000);
                } else {
                    // destroy cookies
                    setcookie("username", "", time() - 3600);
                    setcookie("password", "", time() - 3600);
                    setcookie("language", "", time() - 3600);
                    setcookie("pagestyle", $aFormValues['pagestyle'], time() + 94608000);
                    $username = '';
                    $password = '';
                    $language = 'en_US';
                    $checked = false;
                }
                $_SESSION = array();
                $_SESSION['curuser']['username'] = trim($aFormValues['username']);
                $_SESSION['curuser']['usertype'] = $list['usertype'];
                $_SESSION['curuser']['ipaddress'] = $_SERVER["REMOTE_ADDR"];
                $_SESSION['curuser']['userid'] = $list['id'];
                $_SESSION['curuser']['groupid'] = $list['groupid'];
                $_SESSION['curuser']['resellerid'] = $list['resellerid'];
                $_SESSION['curuser']['limittype'] = $list['limittype'];
                $configstatus = common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig);
                if ($configstatus == -2) {
                    $html = "(fail to read " . $config['system']['astercc_path'] . "/astercc.conf)";
                    return $html;
                } else {
                    $billingfield = trim($asterccConfig['system']['billingfield']);
                    if ($billingfield == 'accountcode') {
                        $_SESSION['curuser']['billingfield'] = $billingfield;
                    }
                }
                $res = astercrm::getCalleridListByID($list['groupid']);
                while ($res->fetchInto($row)) {
                    $_SESSION['curuser']['extensions'][] = $row['clid'];
                }
                if (!is_array($_SESSION['curuser']['extensions'])) {
                    $_SESSION['curuser']['extensions'] = array();
                }
                if ($list['usertype'] == 'reseller') {
                    $_SESSION['curuser']['allowcallback'] = $list['allowcallbackreseller'];
                } else {
                    $_SESSION['curuser']['allowcallback'] = $list['allowcallbackgroup'];
                }
                $_SESSION['curuser']['accountcode'] = $list['accountcode'];
                //				if ($list['extensions'] != ''){
                //					$_SESSION['curuser']['extensions'] = split(',',$list['extensions']);
                //				}
                //				else{
                //				}
                list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']);
                /*
                	if you dont want check manager status and show device status when user login 
                	please uncomment these three line
                */
                //				$objResponse->addAlert($locate->Translate("login_success"));
                if ($_SESSION['curuser']['usertype'] == 'groupadmin' || $_SESSION['curuser']['usertype'] == 'operator') {
                    if ($aFormValues['pagestyle'] == 'classic') {
                        $objResponse->addScript('window.location.href="systemstatus.php";');
                    } else {
                        $objResponse->addScript('window.location.href="systemstatus_simple.php";');
                    }
                } else {
                    $objResponse->addScript('window.location.href="account.php";');
                }
                astercrm::insertAccountLog($log);
                return $objResponse;
                //check AMI connection
                $myAsterisk = new Asterisk();
                $myAsterisk->config['asmanager'] = $config['asterisk'];
                $res = $myAsterisk->connect();
                $html .= $locate->Translate("server_connection_test");
                if ($res) {
                    $html .= '<font color=green>' . $locate->Translate("pass") . '</font><br>';
                    $html .= '<b>' . $_SESSION['curuser']['extension'] . ' ' . $locate->Translate("device_status") . '</b><br>';
                    $html .= asterisk::getPeerIP($_SESSION['curuser']['extension']) . '<br>';
                    $html .= asterisk::getPeerStatus($_SESSION['curuser']['extension']) . '<br>';
                } else {
                    $html .= '<font color=red>' . $locate->Translate("no_pass") . '</font>';
                }
                if ($aFormValues['pagestyle'] == 'classic') {
                    $html .= '<input type="button" value="' . $locate->Translate("continue") . '" id="btnContinue" name="btnContinue" onclick="window.location.href=\'systemstatus.php\';">';
                } else {
                    $html .= '<input type="button" value="' . $locate->Translate("continue") . '" id="btnContinue" name="btnContinue" onclick="window.location.href=\'systemstatus_simple.php\';">';
                }
                $objResponse->addAssign("formDiv", "innerHTML", $html);
                $objResponse->addClear("titleDiv", "innerHTML");
                $objResponse->addScript("xajax.\$('btnContinue').focus();");
            } else {
                //$log['account_id'] = 0;
                $log['failedtimes'] = $failedtimes + 1;
                $log['status'] = 'failed';
                $log['failedcause'] = 'incorrect password';
                $loginError = true;
            }
        } else {
            $log['failedtimes'] = $failedtimes + 1;
            $log['account_id'] = 0;
            $log['usertype'] = 'manager_login';
            $log['status'] = 'failed';
            $log['failedcause'] = 'notexistent user';
            $loginError = true;
        }
        astercrm::insertAccountLog($log);
        if (!$loginError) {
            return $objResponse;
        } else {
            $objResponse->addAlert($locate->Translate("login failed"));
            $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
            $objResponse->addAssign("loginButton", "disabled", false);
            return $objResponse;
        }
    } else {
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
    }
    return $objResponse;
}
コード例 #29
0
function predictiveDialer($f)
{
    global $config, $db, $locate;
    $objResponse = new xajaxResponse();
    //print_r($f);exit;
    $aDyadicArray[] = array($locate->Translate("src"), $locate->Translate("dst"), $locate->Translate("srcchan"), $locate->Translate("dstchan"), $locate->Translate("starttime"), $locate->Translate("answertime"), $locate->Translate("disposition"));
    $cDyadicArray[] = array($locate->Translate("src"), $locate->Translate("dst"), $locate->Translate("srcchan"), $locate->Translate("dstchan"), $locate->Translate("starttime"), $locate->Translate("first answertime"), $locate->Translate("answertime"), $locate->Translate("disposition"));
    // 检查系统目前的通话情况
    //if($_SESSION['curuser']['usertype'] == 'admin'){
    $sql = "SELECT curcdr.*,dialedlist.id as did,dialedlist.dialednumber,dialedlist.campaignid,dialedlist.dialedby,dialedlist.channel FROM curcdr LEFT JOIN dialedlist ON curcdr.srcchan=dialedlist.channel OR curcdr.dstchan=dialedlist.channel WHERE curcdr.id > 0 AND dialedlist.channel != '' ORDER by curcdr.id desc";
    $curdiledlist = $db->query($sql);
    //$curcdr = astercrm::getAll("curcdr");
    //}elseif($_SESSION['curuser']['usertype'] == 'groupadmin'){
    //	$curcdr = astercrm::getGroupCurcdr();
    //}
    $curdidlist = array();
    while ($curdiledlist->fetchInto($row)) {
        if ($row['did'] > 0) {
            if (in_array($row['did'], $curdidlist)) {
                continue;
            } else {
                $curdidlist[] = $row['did'];
                $campaignCDR[$row['campaignid']][] = array($row["src"], $row["dst"], $row["srcchan"], $row["dstchan"], $row["starttime"], $row["calldate"], $row["answertime"], $row["disposition"]);
            }
        } else {
            $query = "SELECT groupid FROM astercrm_account WHERE extension = '" . $row['dst'] . "' OR extension = '" . $row['dst'] . "'  GROUP BY groupid ORDER BY groupid DESC LIMIT 0,1";
            $groupid = $db->getOne($query);
            if ($groupid > 0) {
                $groupCDR[$groupid][] = array($row["src"], $row["dst"], $row["srcchan"], $row["dstchan"], $row["starttime"], $row["answertime"], $row["disposition"]);
            } elseif ($_SESSION['curuser']['usertype'] == 'admin') {
                //print_r($row);exit;
                $systemCDR[] = array($row["src"], $row["dst"], $row["srcchan"], $row["dstchan"], $row["starttime"], $row["answertime"], $row["disposition"]);
            }
        }
    }
    if ($_SESSION['curuser']['usertype'] == 'admin') {
        $systemChannels = common::generateTabelHtml(array_merge($aDyadicArray, $systemCDR));
    }
    $objResponse->addAssign("idvUnknowChannels", "innerHTML", nl2br(trim($systemChannels)));
    // clear all group
    $groups = astercrm::getAll("astercrm_accountgroup");
    while ($groups->fetchInto($group)) {
        $objResponse->addAssign("unknown" . $group['groupid'], "innerHTML", "");
    }
    // clear all campaign
    $campaigns = astercrm::getAll("campaign");
    while ($campaigns->fetchInto($campaign)) {
        $campaign_queue_name[$campaign['id']] = $campaign['queuename'];
        $objResponse->addAssign("campaign" . $campaign['id'], "innerHTML", "");
    }
    // start assign all CDRs
    foreach ($groupCDR as $key => $value) {
        if (is_array($value)) {
            $groupChannels = common::generateTabelHtml(array_merge($aDyadicArray, $value));
            $objResponse->addAssign("unknown{$key}", "innerHTML", nl2br(trim($groupChannels)));
        } else {
            $objResponse->addAssign("unknown{$key}", "innerHTML", "");
        }
    }
    foreach ($campaignCDR as $key => $value) {
        if (is_array($value)) {
            $campaignChannels = common::generateTabelHtml(array_merge($cDyadicArray, $value));
            $objResponse->addAssign("campaign{$key}", "innerHTML", nl2br(trim($campaignChannels)));
        } else {
            $objResponse->addAssign("campaign{$key}", "innerHTML", "");
        }
    }
    /*
    // 将$f按组别分类
    foreach ($f as $key => $value){
    	list ($campaignid, $field) = split("-",$key);
    	$predial_campaigns[$campaignid][$field] = $value;
    }
    
    foreach ($predial_campaigns as $key => $value){
    	if ($value['ckb'] == "on"){
    		// 查找是否还有待拨号码
    		$diallist_num[$key] = astercrm::getCountByField("campaignid", $key, "diallist");
    		$num = 0;
    		if ($diallist_num[$key]  > 0){
    			if ($value['limittpye'][0] == "channel"){
    				// 根据并发限制
    				// 检查目前该campaign的并发通道
    				$exp = $value['maxchannel'] - count($campaignCDR[$key]);
    				if (  $exp > 0 ){
    					// 可以发起呼叫, 规则为 (差额 +2)/3
    					$num = intval(($exp + 2)/3);
    					$i = 0;
    					while ($i<$num && placeCall($key)) $i++;
    				}else{
    					// skip this campaign
    				}
    			}else{
    				// 根据agent限制
    				// 获取目前agent的数目
    				$query = "SELECT COUNT(*) FROM queue_agent WHERE status = 'In use' AND queuename = '".$campaign_queue_name[$key]."' ";
    				$busy_agent_num = $db->getOne($query);
    
    				$query = "SELECT COUNT(*) FROM queue_agent WHERE status = 'Not in use' AND queuename = '".$campaign_queue_name[$key]."' ";
    				$free_agent_num = $db->getOne($query);
    				$totalagent = ($busy_agent_num + $free_agent_num);
    				if (is_numeric($value['rate'])){
    					$myagent = intval($totalagent * (1+$rate/100));
    				}
    
    				$exp = $myagent - count($campaignCDR[$key]);
    				if (  $exp > 0 ){
    					// 可以发起呼叫, 规则为 (差额 +2)/3
    					$num = intval(($exp + 2)/3);
    					$i = 0;
    					while ($i<$num && placeCall($key)) $i++;
    				}else{
    					// skip this campaign
    				}
    			}
    		}
    		// refresh campaing number
    		$objResponse->addAssign("numbers-$key","innerHTML",$diallist_num[$key] - $i);
    
    	}else{
    		unset($predial_campaigns[$key]);
    	}
    }
    */
    //exit;
    $check_interval = 2000;
    if (is_numeric($config['system']['status_check_interval'])) {
        $check_interval = $config['system']['status_check_interval'] * 1000;
    }
    $objResponse->addScript("setTimeout(\"startDial()\", " . $check_interval . ");");
    return $objResponse;
}
コード例 #30
-33
	function confirmUpload($url, $name){
 		$objResponse = new xajaxResponse();
// 		$last_pos = strripos($url, '/');
// 		$length = strlen($url);
// 		$file_name=substr($url, $last_pos+1);
		if(copy($url, '../img/files/'.$name)){
			unlink($url);
			watermark('../img/files/'.$name, '../img/logo.png',0,72,1);

			$objResponse->addScript("confirmUpload_back('". $name. "');");
			//$objResponse->addAlert('success');
		}
		else{
			//$objResponse->addAlert('Fail');
		}
 		//$objResponse->addAlert('test');
		
		
		return $objResponse;
	}