Skavti - radar chart
This commit is contained in:
parent
bac4358a13
commit
dab302e1f1
@ -1228,7 +1228,7 @@ class BodyController extends Controller
|
||||
|
||||
// SKAVTI - prikaz povzetka odgovorov in grafa
|
||||
global $mysql_database_name;
|
||||
//if($mysql_database_name == '1ka' && get('anketa') == '37')
|
||||
//if($mysql_database_name == '1ka' && get('anketa') == '64'){
|
||||
if($mysql_database_name == '1ka' && (get('anketa') == '293926' || get('anketa') == '314856')){
|
||||
echo '<div id="skavti_answers">';
|
||||
Display::getInstance()->displaySkavtiAnswers();
|
||||
@ -1242,9 +1242,7 @@ class BodyController extends Controller
|
||||
//$user_settings = GDPR::getSurveySettings(get('anketa'));
|
||||
|
||||
echo '<div class="naslov">';
|
||||
|
||||
echo '<p>'.self::$lang['srv_gdpr_concl'].'</p>';
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
@ -581,15 +581,8 @@ class DisplayController extends Controller
|
||||
$spr_id = $vrednost['spr_id'];
|
||||
$vprasanje_number = $vprasanja[$spr_id];
|
||||
|
||||
echo '<div class="spremenljivka">';
|
||||
|
||||
echo ' <div class="naslov">'.$pohvale_besedilo[$vprasanje_number].'</div>';
|
||||
/*echo ' <div class="naslov">'.$vprasanja[$vrednost['spr_id']]['spr_naslov'].'</div>';
|
||||
|
||||
echo ' <div class="variable_holder">';
|
||||
echo $vrednost['naslov'] . '('.$pohvala_vrednost.')';
|
||||
echo ' </div>';*/
|
||||
|
||||
echo '<div class="spremenljivka">';
|
||||
echo ' <div class="naslov">'.$pohvale_besedilo[$vprasanje_number].'</div>';
|
||||
echo '</div>';
|
||||
|
||||
$i++;
|
||||
@ -607,19 +600,95 @@ class DisplayController extends Controller
|
||||
$spr_id = $vrednost['spr_id'];
|
||||
$vprasanje_number = $vprasanja[$spr_id];
|
||||
|
||||
echo '<div class="spremenljivka">';
|
||||
|
||||
echo ' <div class="naslov">'.$graje_besedilo[$vprasanje_number].'</div>';
|
||||
/*echo ' <div class="naslov">'.$vprasanja[$vrednost['spr_id']]['spr_naslov'].'</div>';
|
||||
|
||||
echo ' <div class="variable_holder">';
|
||||
echo $vrednost['naslov'] . '('.$graja_vrednost.')';
|
||||
echo ' </div>';*/
|
||||
|
||||
echo '<div class="spremenljivka">';
|
||||
echo ' <div class="naslov">'.$graje_besedilo[$vprasanje_number].'</div>';
|
||||
echo '</div>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
$this->displaySkavtiRadar();
|
||||
}
|
||||
|
||||
// SKAVTI - prikaze graf pajkovo mrezo
|
||||
private function displaySkavtiRadar(){
|
||||
|
||||
// Include knjiznice Chart.JS
|
||||
echo '<script src="'.self::$site_url.'/main/survey/js/ChartJS/Chart.min.js"></script>';
|
||||
echo '<script src="'.self::$site_url.'/main/survey/js/ChartJS/chart_init.js?v=3"></script>';
|
||||
|
||||
|
||||
// Priprava podatkov za radar
|
||||
$radar_data = array();
|
||||
$sqlB = sisplet_query("SELECT i.label, i.id
|
||||
FROM srv_if i, srv_branching b
|
||||
WHERE b.ank_id='".get('anketa')."' AND i.id=b.element_if
|
||||
AND i.tip='1'
|
||||
");
|
||||
if (!$sqlB) echo mysqli_error($GLOBALS['connect_db']);
|
||||
|
||||
// Loop cez bloke (stranica radarja)
|
||||
while($rowB = mysqli_fetch_array($sqlB)){
|
||||
|
||||
// Dobimo vsa ustrezna vprasanja z odgovori v tem bloku
|
||||
$sqlQ = sisplet_query("SELECT s.id AS spr_id, s.variable AS spr_variable, v.naslov, v.variable, vd.*
|
||||
FROM srv_branching b, srv_spremenljivka s, srv_vrednost v, srv_data_vrednost_active vd
|
||||
WHERE b.ank_id='".get('anketa')."' AND b.parent='".$rowB['id']."' AND b.element_spr=s.id
|
||||
AND s.variable LIKE 'R%'
|
||||
AND vd.usr_id='".get('usr_id')."' AND vd.spr_id=s.id
|
||||
AND v.id=vd.vre_id
|
||||
");
|
||||
if (!$sqlQ) echo mysqli_error($GLOBALS['connect_db']);
|
||||
|
||||
// Loop cez vprasanja in odgovore v bloku
|
||||
$count_answers_pohvale = 0;
|
||||
$count_answers_graje = 0;
|
||||
while($rowQ = mysqli_fetch_array($sqlQ)){
|
||||
|
||||
// Pohvala
|
||||
if((int)$rowQ['variable'] >= 1 && (int)$rowQ['variable'] <= 199){
|
||||
$count_answers_pohvale++;
|
||||
}
|
||||
// Graja
|
||||
elseif((int)$rowQ['variable'] >= 201 && (int)$rowQ['variable'] <= 399){
|
||||
$count_answers_graje++;
|
||||
}
|
||||
}
|
||||
|
||||
$count_answers_all = (int)$count_answers_pohvale + (int)$count_answers_graje;
|
||||
if($count_answers_all > 0){
|
||||
$radar_data[$rowB['label']]['all'] = $count_answers_all;
|
||||
$radar_data[$rowB['label']]['pohvale'] = $count_answers_pohvale;
|
||||
$radar_data[$rowB['label']]['graje'] = $count_answers_graje;
|
||||
}
|
||||
}
|
||||
echo '<pre>' . var_export($radar_data, true) . '</pre>';
|
||||
|
||||
$labels = array();
|
||||
$values = array();
|
||||
$i = 0;
|
||||
foreach($radar_data as $radar_label => $radar_values){
|
||||
|
||||
$labels[$i] = $radar_label;
|
||||
$pohvale[$i] = round($radar_values['pohvale'] / $radar_values['all'] * 10);
|
||||
$graje[$i] = round($radar_values['graje'] / $radar_values['all'] * 10);
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
$json_labels = json_encode($labels);
|
||||
$json_pohvale = json_encode($pohvale);
|
||||
$json_graje = json_encode($graje);
|
||||
|
||||
echo '<br><h2 style="padding-left: 20px;">Pajkova mreža</h2>';
|
||||
|
||||
// Izris grafa
|
||||
echo '<div class="spremenljivka radar_chart" id="skavti_radar_chart_holder">';
|
||||
|
||||
echo '<canvas id="skavti_radar_chart" class="chart"></canvas>';
|
||||
echo '<script>$(document).ready(function(){ init_skavti_radar('.$json_labels.', '.$json_pohvale.', '.$json_graje.'); })</script>';
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
||||
|
@ -214,3 +214,47 @@ function init_excell_matrix(x_axis, y_axis, rad){
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Funkcija za poseben modul radar chart - skavti
|
||||
function init_skavti_radar(labels, pohvale, graje){
|
||||
|
||||
// Inicializiramo graf
|
||||
var ctx = document.getElementById("skavti_radar_chart");
|
||||
|
||||
// Podatki grafa
|
||||
var data = {
|
||||
labels: labels,
|
||||
datasets: [{
|
||||
data: pohvale,
|
||||
label: "Pohvale",
|
||||
backgroundColor: "rgba(30,136,229,0.6)"
|
||||
},
|
||||
{
|
||||
data: graje,
|
||||
label: "Graje",
|
||||
backgroundColor: "rgba(200,0,0,0.5)"
|
||||
}]
|
||||
};
|
||||
|
||||
// Nastavitve grafa
|
||||
var options = {
|
||||
scale: {
|
||||
angleLines: {
|
||||
display: false
|
||||
},
|
||||
ticks: {
|
||||
max: 10,
|
||||
min: 0,
|
||||
stepSize: 1
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
/*Chart.defaults.global.defaultFontSize = 15;*/
|
||||
|
||||
var radarChart = new Chart(ctx, {
|
||||
type: 'radar',
|
||||
data: data,
|
||||
options: options
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user