Пример #1
0
		} else {
			x = cnv2(a);
			y = cnv2(b);
			return ((x[0] < y[0]) ? -1 : ((x[0] > y[0]) ? 1 : ((x[1] < y[1]) ? -1 : ((x[1] > y[1]) ? 1 : 0))   ));
		}
    };

    jQuery.fn.dataTableExt.oSort['click-data-desc'] = function(a, b) {
    	if(a.indexOf('sortdata') + 1) {
    		a = $('.' + $('#type_selected').val() + ' .sortdata', $('<div>' + a + '</div>')).text().split('|');
			b = $('.' + $('#type_selected').val() + ' .sortdata', $('<div>' + b + '</div>')).text().split('|');
			return srt_data(a, b, 0, -1);
    	} else { 
    		x = cnv2(a);
			y = cnv2(b);
			return ((x[0] < y[0]) ? 1 : ((x[0] > y[0]) ? -1 : ((x[1] < y[1]) ? 1 : ((x[1] > y[1]) ? -1 : 0))  ));
		}
    };
</script>
<?php 
echo tpx('report_toolbar');
echo '<script>';
echo "update_cols('" . $col . "', 0);";
if ($part == 'all') {
    echo "update_cols('currency_" . $currency . "', 1);";
}
echo '</script>';
?>
<input type='hidden' id='usd_selected' value='1'>
<input type='hidden' id='type_selected' value='cnt'>
<input type='hidden' id='sales_selected' value='1'>
<?php

if (!$include_flag) {
    exit;
}
// Настройки БД существуют
if ($settings[0]) {
    // Запрашиваем данные админа
    if (!$auth_info[0] and $auth_info[1] == 'register_new') {
        echo tpx('install_register_admin');
    }
} else {
    // Настройки надо спросить у юзера и сохранить
    if ($settings[1] == 'cache_not_writable') {
        // Рассказываем, как открыть на запись папку кэша
        echo tpx('install_cache_not_writable');
    } else {
        // Ввод данных для подключения к базе
        echo tpx('install_connect_db');
    }
}
Пример #3
0
    $main_content = ob_get_contents();
    ob_end_clean();
} else {
    $main_content = '';
}
if ($is_authorized) {
    // Меню сверху
    include _TRACK_SHOW_COMMON_PATH . "/templates/menu-top.inc.php";
    // Меню слева
    $sidebar = _TRACK_SHOW_COMMON_PATH . '/templates/' . (in_array($page_sidebar, $page_sidebar_allowed) ? $page_sidebar : 'sidebar-left.inc.php');
    include $sidebar;
    echo '<div class="page-content' . $menu_toggle_class . '">';
}
?>
        
        <?php 
if ($is_authorized) {
    echo load_plugin('payreminder');
    echo load_plugin('expiry');
}
echo $main_content;
if ($is_authorized) {
    echo '</div>';
}
?>
        <?php 
echo tpx('footer');
?>
    </body>
</html>
<?php

if (!$include_flag) {
    exit;
}
// Заголовок отчёта с названием, временными рамками и кнопками разбиения по времени
echo '<form method="post" name="datachangeform" id="range_form">
    <div class="pull-left"><h3>' . $var['report_name'] . '</h3></div>
    ' . tpx('block_range_' . $var['timestep'], $var) . '
    <div class="pull-right" style="margin-top:18px;">' . tpx('report_timestep', $var) . '</div>
  </form>
<div class="row"></div>';
echo tpx('report_breadcrumbs');
// Добавляем глобальные уведомления
if ($global_ntf_cnt > 0) {
    $i = 0;
    foreach ($global_notifications as $cur) {
        $i++;
        switch ($cur) {
            case 'CRONTAB_CLICKS_NOT_INSTALLED':
                $process_clicks_path = realpath(_TRACK_SHOW_PATH . '/process_clicks.php');
                $title = 'Статистика переходов не обновляется';
                $description = '<p>Добавьте в cron запуск следующего файла:<br /><code>' . $process_clicks_path . '</code>,<br /> с интервалом в одну минуту.</p><p>Данный скрипт отвечает за импорт данных о переходах в базу данных.</p><p>Строка запуска может выглядеть примерно так:</p><p><code>*/1 * * * * /usr/bin/php5 /var/www/cpatracker.ru/track-show/process_clicks.php &gt;/dev/null</code></p><p>Для редактирования cron файла используйте панель управления сервером или команду "crontab -e" из консоли.</p><p>После первого успешного обновления статистики данное сообщение исчезнет. При возникновении проблем обратитесь в службу технической поддержки вашего хостинга.</p>';
                break;
            case 'CRONTAB_POSTBACK_NOT_INSTALLED':
                $process_postback_path = realpath(_TRACK_SHOW_PATH . '/process_postback.php');
                $title = 'Статистика продаж не обновляется';
                $description = '<p>Добавьте в cron запуск следующего файла:<br /><code>' . $process_postback_path . '</code>,<br /> с интервалом в одну минуту.</p><p>Данный скрипт отвечает за импорт данных о продажах в базу данных.</p><p>Строка запуска может выглядеть примерно так:</p><p><code>*/1 * * * * /usr/bin/php5 /var/www/cpatracker.ru/track-show/process_postback.php &gt;/dev/null</code></p><p>Для редактирования cron файла используйте панель управления сервером или команду "crontab -e" из консоли.</p><p>После первого успешного обновления данных о продажах данное сообщение исчезнет. При возникновении проблем обратитесь в службу технической поддержки вашего хостинга.</p>';
                break;
            case 'API_CONNECT_ERROR':
                $title = 'Произошла ошибка связи во время синхронизации с трекером';
                $description = '<p>Не удалось получить правильый ответ при отправке данных на трекер. Проверьте, пожалуйста, доступность удалённых трекеров и выполните синхронизацию вручную.<br /><a href="?ajax_act=sync_slaves" class="btn btn-default">Выполнить синхронизацию</a>.</p>';
                break;
            default:
                continue;
                break;
        }
        $ntf[] = array('title' => $title, 'text' => $description);
    }
}
$ntf = array_merge($ntf, $user_ntf_arr);
$assign = array('cnt' => $user_ntf_cnt, 'cnt_system' => $global_ntf_cnt, 'cnt_unread' => $user_ntf_unread_cnt, 'status' => $status, 'notifications' => $ntf);
echo tpx('notifications', $assign);
    $var['parent'] = '';
    $var['pre_name'] = '';
    echo tpx('report_click_all_row', $var);
    if (!empty($r['sub'])) {
        $i = 1;
        $cnt = count($r['sub']);
        foreach ($r['sub'] as $r0) {
            $var['r'] = $r0;
            $var['sub'] = 1;
            $var['class'] = 'sub';
            $var['parent'] = $r;
            if ($cnt == $i) {
                $var['class'] .= ' last';
            }
            //$var['pre_name'] = ($cnt == $i) ? '└' : '├';
            echo tpx('report_click_all_row', $var);
            $i++;
        }
    }
}
?>
			</tbody>
		</table>
</div>

<script>

$(document).ready(function() {
	$('.hidecont').show();
	
	// Конвертируем сложные для сортировки данные (валюта, проценты) в нормальные числа
    $sparkline++;
    if (!empty($r['sub'])) {
        $i = 1;
        $cnt = count($r['sub']);
        foreach ($r['sub'] as $r0) {
            $row_total_data = array();
            // суммирование по строкам
            $var['r'] = $r0;
            $var['sub'] = 1;
            $var['class'] = 'sub';
            $var['parent'] = $r;
            if ($cnt == $i) {
                $var['class'] .= ' last';
            }
            //dmp($r0);
            echo tpx('report_daily_lp_row', $var);
            $sparkline++;
            $i++;
        }
    }
}
echo "</tbody>";
// Итоговая строка
echo "<tfoot><tr><td " . ($var['report_params']['mode'] == 'popular' ? ' colspan="2"' : '') . ">Итого</td>";
foreach ($var['arr_dates'] as $cur_date) {
    $var['r'] = $column_total_data[$cur_date];
    echo '<td>' . get_clicks_report_element2($var, false) . '</td>';
}
echo '<td>' . get_clicks_report_element2($table_total_data, false) . '</td>';
echo "</tr></tfoot>";
echo "</table></div>";
                <label class="btn btn-default active" onclick='update_stats("currency_usd");'><input type="radio" name="option_currency">$</label>	
            </div>
        </div>
    </div> <!-- ./col-md-12 -->
</div> <!-- ./row -->
<?php 
        }
    } elseif ($params['part'] == 'all') {
        // Тулбар
        ?>
		<div id="report_toolbar" class="row">
	<div class="col-md-12">
		<div class="form-group">
			<?php 
        // В общем тулбаре панель переключения конверсий следует в начале
        echo tpx('report_conv', $assign);
        // Этот селектор не нужен, если нет конверсий
        if ($params['conv'] != 'none') {
            ?>
	  		<div id="rt_sale_section" class="btn-group margin5rb" <?php 
            if ($params['mode'] != 'popular' and 0) {
                ?>
data-toggle="buttons"<?php 
            }
            ?>
>
	  			<?php 
            // Изначально этот фильтр позволял переключать колонки без перезагрузки страницы, потому что они они все уже были на странице.
            // Но с появлением режима "Популярные" появляется необходимость перезагружать страницу, а с появлением фильтров конверсии (Все, Только продажи, и.т.д.) эта необходимость переходит на все отчёты
            // Все действия, продажи, лиды
            foreach ($option_leads_type as $k => $v) {
Пример #9
0
     db_query($q);
     $q = "select count(id) as `cnt` from `tbl_sources`";
     $rs = db_query($q);
     $r = mysql_fetch_assoc($rs);
     $out = array('total' => intval($r['cnt']), 'have_favorits' => $r['cnt'] > 0 ? 1 : 0);
     echo json_encode($out);
     exit;
     break;
 case 'restore_link':
     $ids = rq('id', -2);
     $cat_type = rq('cat_type');
     $cat_id = rq('cat_id', 2);
     delete_offer($ids, 0);
     cache_outs_update($ids);
     $offers_arr = offers_total($cat_type, $cat_id);
     $out = array('total' => $offers_arr['total'], 'total_html' => tpx('links_table_total', $offers_arr), 'more' => $offers_arr['more']);
     echo json_encode($out);
     exit;
     break;
     // ну а вдруг кто-то уберёт exit ;)
 // ну а вдруг кто-то уберёт exit ;)
 case 'delete_sale':
     $conversion_id = rq('conversion_id', 2);
     delete_sale_by_id($conversion_id);
     exit;
     break;
 case 'get_sales':
     $sales = get_sales($_POST['sType'], $_POST['sStart'], $_POST['sEnd']);
     echo json_encode($sales);
     exit;
     break;
Пример #10
0
echo '<form method="post"  name="datachangeform" id="range_form">
        <div id="per_day_range" class="pull-right" style="margin-top:0px; margin-bottom:10px;">
            <span class="glyphicon glyphicon-calendar"></span>
            <span id="cur_day_range">'.date('d.m.Y', strtotime($from)).' - '. date('d.m.Y', strtotime($to)).'</span> <b class="caret"></b>
            <input type="hidden" name="from" id="sStart" value="">
            <input type="hidden" name="to" id="sEnd" value="">
        </div>
        
        <div><'.$report_name_tag.'>'._e($report_name).'</'.$report_name_tag.'></div>
      </form>';
*/
// Группировки aka разрезы
?>
<div class="row">&nbsp;</div>
<?php 
echo tpx('report_groups', $_REQUEST);
?>
<script>
$(document).ready(function() {
	jQuery.fn.dataTableExt.oApi.fnSortNeutral = function ( oSettings ){
		oSettings.aaSorting = [[1, "desc", 0]];
		oSettings.aiDisplay.sort( function (x,y) {
		    return x-y;
		} );
		oSettings.aiDisplayMaster.sort( function (x,y) {
		    return x-y;
		} );
		oSettings.oApi._fnReDraw( oSettings );
	};
	
	jQuery.fn.dataTableExt.oSort['click-data-asc'] = function(a, b) {
Пример #11
0
$cat_types = array('favorits' => 'Избранное', 'all' => 'Все офферы', 'archive' => 'Архив');
$category_id = rq('category_id', 2);
$offset = rq('offset', 2);
$limit = rq('limit', 2, 1000);
$cat_type = rq('type');
// Существует ли тип, который нам прислали?
if (empty($cat_type) or !array_key_exists($cat_type, $cat_types)) {
    $cat_type = 'all';
}
$result = get_links_categories_list();
$arr_categories = array_merge(array(array('id' => 0, 'category_caption' => 'Без категории')), $result['categories']);
$arr_categories_count = $result['categories_count'];
// Свежеудаленная категория
$delete_cat = rq('delete_cat', 2);
if (!empty($delete_cat)) {
    $delete_category_info = category_info($delete_cat);
}
/* @var $cat_type string переменная определена при рендеринге меню */
$arr_offers = get_offers_list($cat_type, $category_id, $offset, $limit);
if ($arr_offers['error']) {
    redirect(full_url() . '?page=links');
}
if ($arr_offers['cat_name'] == '{empty}') {
    $page_headers[0] = '';
    $page_headers[1] = $cat_types[$cat_type];
} else {
    $page_headers[0] = $cat_types[$cat_type];
    $page_headers[1] = $arr_offers['cat_name'];
}
echo tpx('links');
<?php

if (!$include_flag) {
    exit;
}
if ($var['report_params']['mode'] == 'lp_offers' and $var['report_params']['part'] == 'all') {
    echo tpx('report_click_all_sub', $var);
} else {
    if ($var['report_params']['part'] == 'all') {
        if ($var['report_params']['mode'] == 'lp') {
            echo tpx('report_click_all_lp', $var);
        } elseif ($var['report_params']['mode'] == 'popular') {
            echo tpx('report_click_all_pop', $var);
        } else {
            echo tpx('report_click_all', $var);
        }
    } else {
        if ($var['report_params']['mode'] == 'lp_offers') {
            echo tpx('report_daily_lp', $var);
        } else {
            echo tpx('report_daily', $var);
        }
    }
}
Пример #13
0
    }
    ?>
            </tbody>
            <tfoot id="offers_footer">
                <tr>
                    <td>
                        <form role="form">
                            <div class="checkbox">
                                <label>
                                    <input type="checkbox" value="" class="i-blue check-all" name="check-all">
                                </label>
                            </div>
                        </form>
                    </td>
                    <td colspan="3" id="offers_footer_total"><?php 
    echo tpx('links_table_total', $arr_offers);
    ?>
</td>
                    <td colspan="2" class="text-right"><a class="hover-underline" href="#" id="offers_footer_all" <?php 
    if ($arr_offers['more'] == 0) {
        echo 'style="display: none;"';
    }
    ?>
>Показать все</a></td>
                </tr>
            </tfoot>
        </table>
    </div>
<?php 
}
?>