Статистика ежедневных поступлений ссылок в Sape
У меня есть один проект который предоставляет ссылки через sape на свои страницы. Каждый раз заходить и смотреть за динамикой роста месячного заработка довольно проблематично. Именно поэтому я написал модуль к 8 cms, который собирает нужную информацию, и выводит ее в панели управления сайтом.Вот как это выглядит (картинка справа).
Скрипт входит по https через CURL в сапу, и достает в простейшем формате все ссылки. Обходит их, и ссылки с статусом ОК, сортирует по году, месяцу и дню. Далее скрипт обходит эту структуру и строит несколько слоев с ссылками для плавного slideUp, slideDown (или любого другого toggle) при помощи jQuery.
В помощи сапы написано, что месячная сумма делится на 30 дней, и сапа забирает 10% себе.
А теперь и сам код:
Код - статистика ссылок по sape | |
1 |
if($config['sape']['login']){ $url = "https://auth.sape.ru/login/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile"); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "act=login&username=".$config['sape']['login']."&password=".$config['sape']['pass']); // add POST fields curl_exec($ch); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_URL,'https://www.sape.ru/export/linkswm/?fields%5Blevel%5D=level&fields%5Bdate_placed%5D=date_placed&fields%5Bstatus_text%5D=status_text&fields%5Bprice%5D=price¤cy=RUR&export_format=TSV&referer=sites'); // set url to post to $result = curl_exec($ch); curl_close($ch); $sape_lines=explode("\n",$result); $sape_res=array(); foreach ($sape_lines as $k => $v) { $sape_res[]=explode("\t",$v); } foreach ($sape_res as $k => $v) { $substr=substr($sape_res[$k][1],0,10); $sape_res[$k][1]=trim($substr,' '); } $sape_dates=array(); $sape_count=0; $sape_levels=array(); foreach ($sape_res as $k => $v) { if ($v[2]=='OK'){ $dates=explode('.',$v[1]); $sape_dates[$dates[2]][$dates[1]][$dates[0]]+=$v[3]; $sape_count+=$v[3]; $sape_levels[$v[0]]++; } } foreach ($sape_dates as $k => $v) { foreach ($sape_dates[$k] as $k2 => $v2) { ksort($sape_dates[$k][$k2]); } } if ($sape_count){ $month_names=array("январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"); print '<div id="sape" style="float:right;font-size:0.8em;padding:0.8em;background:#fafaff;border:3px solid #eee;"> <a class="right" href="javascript:toggle3(\'sape\')"><img src="/images/delete_ico.png" alt="X"></a><h1>Доход с Sape.ru</h1>'; foreach ($sape_dates as $k => $v){ $sape_year=''; $sape_year_count=0; foreach ($v as $k2 => $v2) { $sape_mouth=''; $sape_mouth_count=0; foreach ($v2 as $k3 => $v3) { $sape_mouth.='<div rel="sape_'.$k3.'.'.$k2.'.'.$k.'" class="textblock left_margin2" style="border-left:1px dotted #bbb;border-bottom:2px solid #eee;padding-left:4.5em;">'.$k3.'<div class="right">'.$v3.'</div></div>'; $sape_mouth_count+=$v3; } $sape_year.='<div rel="sape_'.$k2.'.'.$k.'" class="textblock left_margin2" style="border-left:1px dotted #bbb;border-bottom:2px solid #eee;padding-left:0.8em;"><a href="javascript:toggle3(\'sape_'.$k2.'_'.$k.'\');">'.$month_names[$k2-1].'</a><div class="right bold">'.$sape_mouth_count.'</div></div><div id="sape_'.$k2.'_'.$k.'" class="hide">'.$sape_mouth.'</div>'; $sape_year_count+=$sape_mouth_count; } print '<div style="border-bottom:4px solid #ddd;margin-top:4px;"> <a href="javascript:toggle3(\'sape_'.$k.'\');" class="grey">'.$k.'</a> <div class="right bold" style="color:red;">'.$sape_year_count.'руб.</div></div><div id="sape_'.$k.'" class="hide">'.$sape_year.'</div>'; } foreach ($sape_levels as $k => $v){ print 'Ссылок '.$k.' уровня: '.$v.'<br>'; } print "<br>На сумму в месяц:<br>".$sape_count." - ".($sape_count*0.1)."= ".($sape_count*0.9)."руб. в месяц<br>"; $sape_count=$sape_count*0.9; print "<br>В день: <b>".($sape_count/30)."руб.</b>"; } } |
Дата записи: 21.01.2010 17:11
Предыдущая тема: Настройки для сайта или модулей