//dashactivity trafic source data_list & pie_chart
This commit is contained in:
1 parent
f29b1b3a31
commit
3cc187a716
5 files changed
+84
-49
No files matched your search
@@ -70,37 +70,4 @@
|
|||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
|
||||||
var testdata = [
|
|
||||||
{
|
|
||||||
key: "Direct Link",
|
|
||||||
y: 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "Google.com",
|
|
||||||
y: 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "Facebook.com",
|
|
||||||
y: 9
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
nv.addGraph(function() {
|
|
||||||
var chart = nv.models.pieChart()
|
|
||||||
.x(function(d) { return d.key })
|
|
||||||
.y(function(d) { return d.y })
|
|
||||||
.color(d3.scale.category10().range())
|
|
||||||
.donut(true)
|
|
||||||
.showLabels(false)
|
|
||||||
.showLegend(false);
|
|
||||||
d3.select("#dash_traffic_chart2 svg")
|
|
||||||
.datum(testdata)
|
|
||||||
.transition().duration(1200)
|
|
||||||
.call(chart);
|
|
||||||
nv.utils.windowResize(chart.update);
|
|
||||||
return chart;
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
@@ -179,6 +179,16 @@ function data_chart(widget_name, charts)
|
|||||||
window[charts[chart_id].chart_type](widget_name, charts[chart_id]);
|
window[charts[chart_id].chart_type](widget_name, charts[chart_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function data_list_small(widget_name, data)
|
||||||
|
{
|
||||||
|
for (var data_id in data)
|
||||||
|
{
|
||||||
|
for (var item in data[data_id])
|
||||||
|
$('#'+data_id+' ').append('<li><span class="data_label">'+item+'</span><span class="data_value size_s">'+data[data_id][item]+'</span></li>');
|
||||||
|
$('#'+data_id+', #'+widget_name).closest('section').removeClass('loading');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getBlogRss()
|
function getBlogRss()
|
||||||
{
|
{
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
|||||||
@@ -53,11 +53,17 @@ class Dashactivity extends Module
|
|||||||
|| !$this->registerHook('actionObjectCustomerMessageAddAfter')
|
|| !$this->registerHook('actionObjectCustomerMessageAddAfter')
|
||||||
|| !$this->registerHook('actionObjectCustomerThreadAddAfter')
|
|| !$this->registerHook('actionObjectCustomerThreadAddAfter')
|
||||||
|| !$this->registerHook('actionObjectOrderReturnAddAfter')
|
|| !$this->registerHook('actionObjectOrderReturnAddAfter')
|
||||||
|
|| !$this->registerHook('displayBackOfficeHeader')
|
||||||
)
|
)
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function hookDisplayBackOfficeHeader()
|
||||||
|
{
|
||||||
|
if (get_class($this->context->controller) == 'AdminDashboardController')
|
||||||
|
$this->context->controller->addJs($this->_path.'views/js/'.$this->name.'.js');
|
||||||
|
}
|
||||||
|
|
||||||
public function hookDashboardZoneOne($params)
|
public function hookDashboardZoneOne($params)
|
||||||
{
|
{
|
||||||
@@ -196,10 +202,56 @@ class Dashactivity extends Module
|
|||||||
),
|
),
|
||||||
'data_trends' => array(
|
'data_trends' => array(
|
||||||
'orders_trends' => array('way' => 'down', 'value' => 0.42),
|
'orders_trends' => array('way' => 'down', 'value' => 0.42),
|
||||||
)
|
),
|
||||||
|
'data_list_small' => array(
|
||||||
|
'dash_traffic_source' => $this->getReferer($params['date_from'], $params['date_to']),
|
||||||
|
),
|
||||||
|
'data_chart' => array(
|
||||||
|
'dash_trends_chart1' => $this->getChartTrafficSource($params['date_from'], $params['date_to']),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getChartTrafficSource($date_from, $date_to)
|
||||||
|
{
|
||||||
|
$referers = $this->getReferer($date_from, $date_to);
|
||||||
|
$return = array('chart_type' => 'pie_chart_trends', 'data' => array());
|
||||||
|
foreach ($referers as $referer_name => $nbr)
|
||||||
|
$return['data'][] = array('key' => $referer_name, 'y' => $nbr);
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getReferer($date_from, $date_to, $limit = 10)
|
||||||
|
{
|
||||||
|
$directLink = $this->l('Direct link');
|
||||||
|
$sql = 'SELECT http_referer
|
||||||
|
FROM '._DB_PREFIX_.'connections
|
||||||
|
WHERE 1
|
||||||
|
'.Shop::addSqlRestriction().'
|
||||||
|
AND date_add BETWEEN '.$date_from.' AND '.$date_to.'
|
||||||
|
LIMIT 0, '.(int)$limit;
|
||||||
|
|
||||||
|
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->query($sql);
|
||||||
|
$websites = array($directLink => 0);
|
||||||
|
|
||||||
|
while ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->nextRow($result))
|
||||||
|
{
|
||||||
|
if (!isset($row['http_referer']) || empty($row['http_referer']))
|
||||||
|
++$websites[$directLink];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$website = preg_replace('/^www./', '', parse_url($row['http_referer'], PHP_URL_HOST));
|
||||||
|
if (!isset($websites[$website]))
|
||||||
|
$websites[$website] = 1;
|
||||||
|
else
|
||||||
|
++$websites[$website];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
arsort($websites);
|
||||||
|
return $websites;
|
||||||
|
}
|
||||||
|
|
||||||
public function hookActionObjectCustomerMessageAddAfter($params)
|
public function hookActionObjectCustomerMessageAddAfter($params)
|
||||||
{
|
{
|
||||||
return $this->hookActionObjectOrderAddAfter($params);
|
return $this->hookActionObjectOrderAddAfter($params);
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
function pie_chart_trends(widget_name, chart_details)
|
||||||
|
{
|
||||||
|
nv.addGraph(function() {
|
||||||
|
var chart = nv.models.pieChart()
|
||||||
|
.x(function(d) { return d.key })
|
||||||
|
.y(function(d) { return d.y })
|
||||||
|
.color(d3.scale.category10().range())
|
||||||
|
.donut(true)
|
||||||
|
.showLabels(false)
|
||||||
|
.showLegend(false);
|
||||||
|
d3.select("#dash_traffic_chart2 svg")
|
||||||
|
.datum(chart_details.data)
|
||||||
|
.transition().duration(1200)
|
||||||
|
.call(chart);
|
||||||
|
nv.utils.windowResize(chart.update);
|
||||||
|
return chart;
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -166,19 +166,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span class="data_label">{l s='Traffic Sources'}</span>
|
<span class="data_label">{l s='Traffic Sources'}</span>
|
||||||
<ul class="data_list_small">
|
<ul class="data_list_small" id="dash_traffic_source">
|
||||||
<li>
|
|
||||||
<span class="data_label">{l s='Direct Link'}</span>
|
|
||||||
<span class="data_value size_s">120</span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<span class="data_label">google.com</span>
|
|
||||||
<span class="data_value size_s">75</span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<span class="data_label">facebook.com</span>
|
|
||||||
<span class="data_value size_s">32</span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<div id="dash_traffic_chart2" class='chart with-transitions'>
|
<div id="dash_traffic_chart2" class='chart with-transitions'>
|
||||||
<svg></svg>
|
<svg></svg>
|
||||||
|
|||||||
Reference in new issue
Block a user