function param_val($row, $type, $source_name = '') { global $group_types, $source_config; static $outs = array(); static $links = array(); $name = ''; if (is_array($row)) { $v = $row[$type]; $source_name = $row['source_name']; } else { $v = $row; } // Ссылка "Другие" для площадок и пользовательских параметров if (is_other_link($v, $type)) { $name = 'Другие'; } else { if ($type == 'referer') { if (substr($v, 0, 4) == 'http' or strstr($v, '/') !== false) { $name = parse_url($v); $name = $name['host']; } else { $name = $v; } } elseif ($type == 'source_name') { if ($v == 'source' or $v == 'SOURCE') { // значение по умолчанию $name = ''; } else { $name = empty($source_config[$v]['name']) ? $v : $source_config[$v]['name']; } } elseif ($type == 'ads_name') { if ($v != '') { $name = is_array($row) ? $row['campaign_name'] . '-' . $row['ads_name'] : $row; } } elseif ($type == 'out_id') { if (isset($outs[$v])) { $name = $outs[$v]; } else { $name = current(get_out_description($v)); $outs[$v] = $name; } } elseif ($type == 'rule_id') { if (isset($links[$v])) { $name = $links[$v]; } else { $name = get_rule_description($v); $links[$v] = $name; } } else { // Специальные поля, определённые для источника в виде списка if (!empty($source_config[$source_name]['params']) and strstr($type, 'click_param_value') !== false) { $n = intval(str_replace('click_param_value', '', $type)); $i = 1; foreach ($source_config[$source_name]['params'] as $param) { if ($i == $n and !empty($param['list'][$v])) { $name = str_replace(' ', ' ', $param['list'][$v]); return $name; } $i++; } $name = $v; } else { $name = $v; } } } if (trim($name) == '' or $name == '{empty}' or $type == 'campaign_name' and $name == 'campaign' or $type == 'ads_name' and $name == 'campaign-ads') { $name = $group_types[$type][1]; } return $name; }
$row_total_data = array(); // суммирование по строкам $i++; // Первая колонка, название $source_name_full = param_val($source_name, $var['group_by'], $var['filter'][0]['source_name']); if ($var['report_params']['mode'] == 'popular') { $name = str_replace('Параметр перехода', 'ПП', $group_types[$source_name_full][0]); $name = str_replace('Параметр перехода', 'ПС', $name); $source_name_full = '<b><a href="' . report_lnk($var['report_params'], array('filter_str' => array_merge($var['report_params']['filter_str'], array('group_by' => _e($source_name))))) . '">' . $name . '</a></b>'; $data['popular'] = '<a href="' . report_lnk($var['report_params'], array('filter_str' => array_merge($var['report_params']['filter_str'], array($source_name => _e($data['popular']))))) . '">' . _e(param_val($data['popular'], $source_name)) . '</a>'; echo "<tr><td><table class=\"sparktable\"><tr><td>" . $source_name_full . "</td><td><span style='float:right; margin-left:10px;'><div id='sparkline_{$i}'></div></span></td></tr></table></td><td>" . $data['popular'] . "</td>"; } else { // Ограничиваем глубину фильтров if (empty($var['report_params']['filter'][0]) or count($var['report_params']['filter'][0]) < 5) { // Ссылка "Другие" if (is_other_link($source_name, $var['group_by'])) { $lnk_arr = array('no_other' => 1); } else { $lnk_arr = array('filter_str' => array_merge($var['report_params']['filter_str'], array($var['report_params']['group_by'] => _e($source_name)))); // Первый фильтр - переход в режим "Популярные" if (count($var['report_params']['filter'][0]) == 0) { $lnk_arr['mode'] = 'popular'; $lnk_arr['group_by'] = ''; } } $source_name_full = '<a href="' . report_lnk($var['report_params'], $lnk_arr) . '">' . _e($source_name_full) . '</a>'; } else { $source_name_full = _e($source_name_full); } //echo "<tr><td><table class=\"sparktable\"><tr><td>" . $source_name_full . "</td><td><span style='float:right; margin-left:10px;'><div id='sparkline_{$i}'></div></span></td></tr></table></td>"; echo "<tr><td>" . $source_name_full . "</td><td><span style='float:right; margin-left:10px;'><div id='sparkline_{$i}'></div></span></td>";