$lasterror[] = $language['client_off_line']; } if (!$lasterror) { $query = 'select a.name,b.alias from ' . $mysql_ini['prefix'] . 'online_clients as a left join ' . $mysql_ini['prefix'] . 'dummy as b on b.dummy=a.dummy where a.cid=' . $clientId . ' limit 1'; $result = $db->query($query); if (1 == mysqli_num_rows($result)) { $tmp = $result->fetch_assoc(); $clientName = GlobalFunc::clip_str_width($tmp['name']); $query = 'select b.module,b.charset from ' . $mysql_ini['prefix'] . 'online_module as a left join ' . $mysql_ini['prefix'] . 'modules as b on b.module=a.module where a.cid=' . $clientId . ' and a.module=\'' . $moduleId . '\' limit 1'; $result = $db->query($query); if (1 != mysqli_num_rows($result)) { $lasterror[] = $language['no_mid_client']; } else { $tmp = $result->fetch_assoc(); $mod_name_array = GlobalFunc::get_mod_name($tmp['module'], $language_choosed); $moduleName = GlobalFunc::clip_str_width($mod_name_array['name']); if ($data) { if (0 != $tmp['charset']) { $data = iconv($module_charset[$tmp['charset']], "utf-8//IGNORE", $data); if (false === $data) { $lasterror[] = $language['fail_iconv'] . $module_charset[$tmp['charset']]; } } } } } else { $lasterror[] = $language['client_off_line']; } } if (!$lasterror) { $query = 'insert into ' . $mysql_ini['prefix'] . 'online_task_lock values(?)';
public static function check_owner_sub_units() { global $language; $clients = self::$_cid; $cid = self::$_cid; $max_request_len = 1024; //最大每次请求长度(受mysql单指令长度限制) //注:可能会超过,需要保守使用 $query_head = 'select a.cid,a.name,b.alias,c.module from ' . self::$_mysql_ini['prefix'] . 'online_clients as a left join ' . self::$_mysql_ini['prefix'] . 'dummy as b on b.dummy=a.dummy left join ' . self::$_mysql_ini['prefix'] . 'online_module as c on c.cid=a.cid and c.module=\'' . self::$_mid . '\'' . ' where a.status=1' . ' and ('; $query_tail = ') limit '; $max_request_len -= strlen($query_head) + strlen($query_tail); while (!empty($cid)) { $units = 0; $remain = $cid; $c_len = $max_request_len; $query = $query_head; $c_units = array(); foreach ($remain as $a) { $q = 'a.cid=' . $a . ' or '; $b = strlen($q); if ($c_len > $b) { $c_len -= $b; $query .= $q; $c_units[$a] = $a; unset($cid[$a]); $units++; } else { break; } } $query = substr($query, 0, strlen($query) - 4); $query .= $query_tail . $units; $result = self::$_db->query($query); $i = mysqli_num_rows($result); if ($i) { for (; $i > 0; $i--) { $tmp = $result->fetch_assoc(); unset($clients[$tmp['cid']]); self::$_result[$tmp['cid']]['cid'] = $tmp['cid']; self::$_result[$tmp['cid']]['mid'] = self::$_mid; if (!empty($tmp['alias'])) { self::$_result[$tmp['cid']]['name'] = GlobalFunc::clip_str_width($tmp['alias']); } else { self::$_result[$tmp['cid']]['name'] = GlobalFunc::clip_str_width($tmp['name']); } if (!GlobalFunc::is_sys_module_id(self::$_mid) and !$tmp['module']) { self::$_result[$tmp['cid']]['lasterror'] = $language['no_mid_client'] . self::$_mid; //$language['no_mid_client']; } } } } foreach ($clients as $a) { //var_dump ($query); self::$_result[$a]['lasterror'] = $language['client_off_line']; } if (false === self::$_result) { return false; } else { return true; } }
$shortcuts_num = $result['shortcuts_num']; $same_mod_filter = array(); $auto_hide_warning = false; $app_array_id = 0; if ($mod_num) { $query = 'select a.module,a.version,a.latest_version,a.root from ' . $mysql_ini['prefix'] . 'modules as a,' . $mysql_ini['prefix'] . 'online_module as b where b.cid=' . $clientId . ' and b.module = a.module limit ' . $mod_num; $result = $db->query($query); $i = mysqli_num_rows($result); if ($mod_num > $i) { $tmp = $mod_num - $i; $lastwarning[] = $tmp . $language['some_unsupport_mod']; } for (; $i > 0; $i--) { $tmp = $result->fetch_assoc(); $mod_name_array = GlobalFunc::get_mod_name($tmp['module'], $language_choosed); $tmp['title'] = GlobalFunc::clip_str_width($mod_name_array['name']); $tmp['name'] = $mod_name_array['name']; if (isset($same_mod_filter[$tmp['root']])) { if ($same_mod_filter[$tmp['root']]['ver'] > $tmp['version']) { $auto_hide_warning .= $tmp['name'] . ' ver.' . $tmp['version'] . ','; continue; } else { $auto_hide_warning .= $same_mod_filter[$tmp['root']]['name'] . ' ver.' . $same_mod_filter[$tmp['root']]['ver'] . ','; unset($app_array[$same_mod_filter[$tmp['root']]['id']]); } } $same_mod_filter[$tmp['root']]['id'] = $app_array_id; $same_mod_filter[$tmp['root']]['ver'] = $tmp['version']; $same_mod_filter[$tmp['root']]['name'] = $tmp['name']; $app_array[$app_array_id] = $tmp; $app_array_id++;