}
 if ($_allow_edit) {
     $data .= str_replace(array('{NAME}', '{URL}', '{JS_EVENTS}'), array('editscript', QUERY_STRING_HTML . '&' . ($is_view ? 'view=' . htmlEntitiesEx(urlencode($_GET['view'])) : 'new'), ''), THEME_FORMPOST_BEGIN);
 }
 $data .= str_replace('{WIDTH}', 'auto', THEME_DIALOG_BEGIN) . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(1, $is_view ? LNG_BOTNET_SCRIPT_EDIT : LNG_BOTNET_SCRIPT_NEW), THEME_DIALOG_TITLE) . THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_GROUP_BEGIN) . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_BOTNET_SCRIPT_NAME, THEME_DIALOG_ITEM_TEXT) . str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('name', $f_name, 200, SCRIPT_INPUT_TEXT_WIDTH), $_allow_edit ? THEME_DIALOG_ITEM_INPUT_TEXT : THEME_DIALOG_ITEM_INPUT_TEXT_RO) . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_BOTNET_SCRIPT_STATUS, THEME_DIALOG_ITEM_TEXT) . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ITEM_CHILD_BEGIN) . str_replace(array('{NAME}', '{WIDTH}'), array('status', 'auto'), $_allow_edit ? THEME_DIALOG_ITEM_LISTBOX_BEGIN : THEME_DIALOG_ITEM_LISTBOX_BEGIN_RO) . str_replace(array('{VALUE}', '{TEXT}'), array(0, LNG_BOTNET_STATUS_DISABLED), !$f_is_enabled ? THEME_DIALOG_ITEM_LISTBOX_ITEM_CUR : THEME_DIALOG_ITEM_LISTBOX_ITEM) . str_replace(array('{VALUE}', '{TEXT}'), array(1, LNG_BOTNET_STATUS_ENABLED), $f_is_enabled ? THEME_DIALOG_ITEM_LISTBOX_ITEM_CUR : THEME_DIALOG_ITEM_LISTBOX_ITEM) . ($_allow_edit ? THEME_DIALOG_ITEM_LISTBOX_END : THEME_DIALOG_ITEM_LISTBOX_END_RO) . THEME_DIALOG_ITEM_CHILD_END . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_BOTNET_SCRIPT_LIMIT, THEME_DIALOG_ITEM_TEXT) . str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('limit', $f_limit, 10, SCRIPT_INPUT_TEXT_WIDTH), $_allow_edit ? THEME_DIALOG_ITEM_INPUT_TEXT : THEME_DIALOG_ITEM_INPUT_TEXT_RO) . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_BOTNET_SCRIPT_BOTS, THEME_DIALOG_ITEM_TEXT) . str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('bots', $f_bots, 60000, SCRIPT_INPUT_TEXT_WIDTH), $_allow_edit ? THEME_DIALOG_ITEM_INPUT_TEXT : THEME_DIALOG_ITEM_INPUT_TEXT_RO) . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_BOTNET_SCRIPT_BOTNETS, THEME_DIALOG_ITEM_TEXT) . str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('botnets', $f_botnets, 60000, SCRIPT_INPUT_TEXT_WIDTH), $_allow_edit ? THEME_DIALOG_ITEM_INPUT_TEXT : THEME_DIALOG_ITEM_INPUT_TEXT_RO) . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_BOTNET_SCRIPT_COUNTRIES, THEME_DIALOG_ITEM_TEXT) . str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('countries', $f_countries, 60000, SCRIPT_INPUT_TEXT_WIDTH), $_allow_edit ? THEME_DIALOG_ITEM_INPUT_TEXT : THEME_DIALOG_ITEM_INPUT_TEXT_RO) . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_BOTNET_SCRIPT_CONTEXT, THEME_DIALOG_ITEM_TEXT_TOP) . str_replace(array('{NAME}', '{ROWS}', '{COLS}', '{WIDTH}', '{TEXT}'), array('context', 20, 100, SCRIPT_INPUT_TEXT_WIDTH, $f_context), $_allow_edit ? THEME_DIALOG_ITEM_INPUT_TEXTAREA : THEME_DIALOG_ITEM_INPUT_TEXTAREA_RO) . THEME_DIALOG_ROW_END . THEME_DIALOG_GROUP_END . THEME_DIALOG_ROW_END;
 if ($_allow_edit) {
     $data .= str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ACTIONLIST_BEGIN) . str_replace(array('{TEXT}', '{JS_EVENTS}'), array($is_view ? LNG_BOTNET_SCRIPT_ACTION_SAVE : LNG_BOTNET_SCRIPT_ACTION_NEW, ''), THEME_DIALOG_ITEM_ACTION_SUBMIT) . ($is_view ? THEME_DIALOG_ITEM_ACTION_SEPARATOR . str_replace(array('{TEXT}', '{JS_EVENTS}'), array(LNG_BOTNET_SCRIPT_ACTION_NEWT, ' onclick="window.location=\'' . QUERY_STRING_HTML . '&new=' . htmlEntitiesEx(urlencode($_GET['view'])) . '\'"'), THEME_DIALOG_ITEM_ACTION) : '') . THEME_DIALOG_ACTIONLIST_END;
 }
 $data .= THEME_DIALOG_END . ($_allow_edit ? THEME_FORMPOST_END : '');
 $js_script = 0;
 //Вывод списка ботов.
 if ($is_view) {
     //JavaScript скрипты.
     $_FULL_QUERY = QUERY_STRING . '&view=' . urlencode($_GET['view']);
     $js_sort = addJsSlashes($_FULL_QUERY);
     $_FULL_QUERY .= assocateSortMode(array('rtime', 'type', 'bot_id', 'bot_version', 'report'));
     $js_page = addJsSlashes($_FULL_QUERY);
     $js_script = jsCheckAll('reportslist', 'checkall', 'bots[]') . jsSetSortMode($js_sort) . "function ChangePage(p){window.location='{$js_page}&page=' + p; return false;}";
     //Выполняем запрос.
     $cur_page = !empty($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 1;
     $page_count = 0;
     $page_list = '';
     $bots_count = 0;
     $sortmode = ' ORDER BY ' . $_sortColumn . ($_sortOrder == 0 ? ' ASC' : ' DESC');
     if ($_sortColumnId != 0) {
         $sortmode .= ', bot_id' . ($_sortOrder == 0 ? ' ASC' : ' DESC');
     }
     //Получение обшего кол. элементов.
     $r = mysqlQueryEx('botnet_scripts_stat', 'SELECT COUNT(*) FROM botnet_scripts_stat WHERE extern_id=\'' . addslashes($m[10]) . '\'');
     if ($mt = @mysql_fetch_row($r)) {
         //Создание списка страниц.
Example #2
0
$filter['bots'] = isset($_GET['bots']) ? $_GET['bots'] : '';
$filter['botnets'] = isset($_GET['botnets']) ? $_GET['botnets'] : '';
$filter['ips'] = isset($_GET['ips']) ? $_GET['ips'] : '';
$filter['countries'] = isset($_GET['countries']) ? $_GET['countries'] : '';
$filter['nat'] = isset($_GET['nat']) ? intval($_GET['nat']) : 1;
$filter['online'] = isset($_GET['online']) ? intval($_GET['online']) : 1;
$filter['new'] = isset($_GET['new']) ? intval($_GET['new']) : 0;
$filter['used'] = isset($_GET['used']) ? intval($_GET['used']) : 0;
$filter['comment'] = isset($_GET['comment']) ? intval($_GET['comment']) : 0;
foreach ($filter as $k => $i) {
    $fullQuery .= '&' . $k . '=' . urlencode($i);
}
///////////////////////////////////////////////////////////////////////////////////////////////////
// Определяем данные текущей сортировки.
///////////////////////////////////////////////////////////////////////////////////////////////////
$fullQuery .= assocateSortMode(array('bot_id', 'botnet', 'bot_version', 'ipv4', 'country', 'rtime_online', 'net_latency', 'comment'));
$jsSort = addJsSlashes($fullQuery);
$jsPage = addJsSlashes($fullQuery);
///////////////////////////////////////////////////////////////////////////////////////////////////
// JavaScript скрипты.
///////////////////////////////////////////////////////////////////////////////////////////////////
$jsScript = jsCheckAll('botslist', 'checkall', 'bots[]') . jsSetSortMode($jsSort) . "function changePage(p){window.location='{$jsPage}&page=' + p; return false;}";
///////////////////////////////////////////////////////////////////////////////////////////////////
// Создание запроса.
///////////////////////////////////////////////////////////////////////////////////////////////////
/*
  Касательно LOCATE(`ipv4`, `ipv4_list`). Способ имеет достаточно заметный косяк, но задумываясь
  о хоть каком-то выиграше в скорости, не думаю что его стоит лечить... Я думаю вероятность встретить
  такого сурового совпадения в диком интернете очень низка. Еще можно попробывать делить по модулю
  на 4... Что приведет к противоположному косяку...
*/
Example #3
0
     foreach ($_errors as $e) {
         echo THEME_LIST_ROW_BEGIN . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', str_replace('{TEXT}', $e, THEME_STRING_ERROR)), $i % 2 ? THEME_LIST_ITEM_LTEXT_U2 : THEME_LIST_ITEM_LTEXT_U1) . THEME_LIST_ROW_END;
         $i++;
     }
     echo THEME_LIST_END . THEME_VSPACE;
 }
 //Список дейтсвий.
 $al = LNG_REPORTS_FILESACTION . THEME_STRING_SPACE . str_replace(array('{NAME}', '{WIDTH}'), array('filesaction', 'auto'), THEME_DIALOG_ITEM_LISTBOX_BEGIN);
 if ($_allow_remove) {
     $al .= str_replace(array('{VALUE}', '{TEXT}'), array(0, LNG_REPORTS_FILESACTION_REMOVE), THEME_DIALOG_ITEM_LISTBOX_ITEM);
 }
 $al .= str_replace(array('{VALUE}', '{TEXT}'), array(1, LNG_REPORTS_FILESACTION_CREATEARC), THEME_DIALOG_ITEM_LISTBOX_ITEM) . THEME_DIALOG_ITEM_LISTBOX_END . THEME_STRING_SPACE . str_replace(array('{TEXT}', '{JS_EVENTS}'), array(LNG_ACTION_APPLY, ''), THEME_DIALOG_ITEM_ACTION_SUBMIT) . THEME_STRING_NEWLINE . THEME_STRING_NEWLINE;
 //Обзор.
 if ($_is_browser) {
     //Определяем данные текущей сортировки.
     $_uri_sortmode_html = htmlEntitiesEx(assocateSortMode(array(0, 1, 2)));
     echo str_replace(array('{NAME}', '{URL}', '{JS_EVENTS}'), array('fileslist', QUERY_STRING_HTML . '&path=' . htmlEntitiesEx(urlencode($_FILTER['path'])) . $_uri_sortmode_html, $fl_onsubmit), THEME_FORMPOST_BEGIN) . str_replace('{WIDTH}', 'auto', THEME_DIALOG_BEGIN) . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(1, LNG_REPORTS_RESULT_BROWSE), THEME_DIALOG_TITLE) . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', $al, THEME_DIALOG_ITEM_TEXT) . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ITEM_CHILD_BEGIN) . str_replace('{WIDTH}', '100%', THEME_LIST_BEGIN) . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(COLUMNS_COUNT, LNG_REPORTS_LIST_DIR_TITLE . ' ' . htmlEntitiesEx('/' . urldecode($_FILTER['path']))), THEME_LIST_TITLE) . THEME_LIST_ROW_BEGIN . str_replace(array('{COLUMNS_COUNT}', '{NAME}', '{VALUE}', '{JS_EVENTS}', '{WIDTH}'), array(1, 'checkall', 1, ' onclick="checkAll()"', 'auto'), THEME_LIST_HEADER_CHECKBOX_1) . writeSortColumn(LNG_REPORTS_LIST_NAME, 0, 0) . writeSortColumn(LNG_REPORTS_LIST_SIZE, 1, 0) . writeSortColumn(LNG_REPORTS_LIST_MTIME, 2, 1) . THEME_LIST_ROW_END;
     //Определяем URL'ы.
     $up = dirname($_FILTER['path']);
     if (strcmp($up, '.') === 0 || strcmp($up, '/') === 0 || strcmp($up, '\\') === 0) {
         $up = '';
     }
     $_url_download = QUERY_STRING_HTML . '&path=' . htmlEntitiesEx(urlencode($_FILTER['path'])) . '&file=';
     $_url_subdir = QUERY_STRING_HTML . '&path=' . htmlEntitiesEx(urlencode($_FILTER['path'])) . $_uri_sortmode_html . '&sub=';
     $_url_updir = QUERY_STRING_HTML . '&path=' . htmlEntitiesEx(urlencode($up)) . $_uri_sortmode_html;
     //Читаем каталог. К сожелению алгоритм очень медленный...
     $files = array();
     $dirs = array();
     $size = 0;
     $msg = '';
     if (($dr = @opendir($_CUR_PATH)) === false) {