* @version $Id$ * @access public * @license http://opensource.org/licenses/gpl-3.0.html */ include_once(override('../dashboard/' . SQL . '.inc.php')); include_once(override('../dashboard/common.php')); /** * DisplayListValuesByThemes() * affichage du tableau de bord * @param integer $id_filter * @param integer $filter * @return **/ if(!function_exists('DisplayListValuesByThemes')) { function DisplayListValuesByThemes($id_filter = -1, $filter = -1) { $result = $GLOBALS['sql_object'] -> DBSelect(SQL_getListtheme()); $result_sdi = $GLOBALS['sql_object'] -> DBSelect(SQL_getListSdi("P", $valueparam = 0)); $listing = ""; $a = array(); // to not display twice an indicator $current_sdtheme = ''; for ($i = 0;$i < count($result);$i++) { if ($result[$i]['sdtheme_id'] != $current_sdtheme && $current_sdtheme <> '') { $listing .= "" . PHP_EOL; $listing .= "" . PHP_EOL; } if ($result[$i]['sdtheme_id'] != $current_sdtheme) { $current_sdtheme = $result[$i]['sdtheme_id']; $listing .= "

" . formatText($result[$i]['sdtheme_name'], '2HTML') . "

".PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; } for ($j = 0;$j < count($result_sdi);$j++) { if ($result[$i]['theme_id'] == $result_sdi[$j]['sdii_theme']) { // we display the value only if attached to dashboard // and if not yet displayed if ($result_sdi[$j]['sdii_to_dashboard']=='Y' && !in_array($result_sdi[$j]['sdii_id'], $a)) { // setting $threshold_value // By default initial value $threshold_value = $result_sdi[$j]['sdii_threshold_value']; // if set, we get the latest for the given scale $r = $GLOBALS['sql_object'] -> DBSelect(SQL_getlastInsertByPublicationDate($result_sdi[$j]['sdii_id'], $id_filter)); if(isset($r[0]['sdiv_value']) && !is_null($r[0]['sdiv_threshold'])) { $threshold_value = $r[0]['sdiv_threshold']; } $link_det_sdi= array('rub'=> $GLOBALS['links'][U_L]['dashboard']['linkvalue'],'id'=>$result_sdi[$j]['sdii_id'], 'parentid'=> $id_filter, 'name' => $result_sdi[$j]['sdii_name']); $listing .= "" . PHP_EOL; $listing .= ""; $listing .= "" . PHP_EOL; $listing .= "" . PHP_EOL; array_push($a, $result_sdi[$j]['sdii_id']); // we add the id into array for not displaying it twice } } } } $listing .= "" . PHP_EOL; $listing .= "
'.mb_ucfirst(_t('dashboard','graphic_value')).''.mb_ucfirst(_t('dashboard','label_value')).'
"; $listing .= getViz($GLOBALS['sql_object'], $id_filter, $result_sdi[$j], $threshold_value); $listing .= "" . formatText($result_sdi[$j]['sdii_name'], '2HTML') . "
" . PHP_EOL; hoverJsBox(); // including sparkline code footerAddJS('../lib/js/jquery.sparkline.min.js'); footerAddInlineJS("$('.inlinebar').sparkline('html', {type: 'bar', barColor: '#8DA8CB'} );"); echo $listing; } } /** * DisplayListValuesByProjects() * affichage du tableau de bord * @param integer $id_filter * @param integer $filter * @return **/ if(!function_exists('DisplayListValuesByProjects')) { function DisplayListValuesByProjects($id_filter = -1, $filter = -1) { $result = $GLOBALS['sql_object'] -> DBSelect(SQL_getListProjects()); $result_sdi = $GLOBALS['sql_object'] -> DBSelect(SQL_getListSdi("P", $valueparam = 0)); $listing = ""; $current_project = ''; for ($i = 0;$i < count($result);$i++) { if ($result[$i]['project_id'] != $current_project && $current_project <> '') { $listing .= "" . PHP_EOL; $listing .= "" . PHP_EOL; } if ($result[$i]['project_id'] != $current_project) { $current_project = $result[$i]['project_id']; $listing .= "

" . formatText($result[$i]['project_name'], '2HTML') . "

".PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; $listing .= '' . PHP_EOL; } for ($j = 0;$j < count($result_sdi);$j++) { if ($result[$i]['project_id'] == $result_sdi[$j]['jps_project_id']) { // we display the value only if attached to dashboard //if ($result_sdi[$j]['sdii_to_dashboard']=='Y') { // setting $threshold_value // By default initial value $threshold_value = $result_sdi[$j]['sdii_threshold_value']; // if set, we get the latest for the given scale $r = $GLOBALS['sql_object'] -> DBSelect(SQL_getlastInsertByPublicationDate($result_sdi[$j]['sdii_id'], $id_filter)); if(isset($r[0]['sdiv_value']) && !is_null($r[0]['sdiv_threshold'])) { $threshold_value = $r[0]['sdiv_threshold']; } $link_det_sdi= array('rub'=> $GLOBALS['links'][U_L]['dashboard']['linkvalue'],'id'=>$result_sdi[$j]['sdii_id'], 'parentid'=> $id_filter, 'name' => $result_sdi[$j]['sdii_name']); $listing .= "" . PHP_EOL; $listing .= ""; $listing .= "" . PHP_EOL; $listing .= "" . PHP_EOL; //} } } } $listing .= "" . PHP_EOL; $listing .= "
'.mb_ucfirst(_t('dashboard','graphic_value')).''.mb_ucfirst(_t('dashboard','label_value')).'
"; $listing .= getViz($GLOBALS['sql_object'], $id_filter, $result_sdi[$j], $threshold_value); $listing .= "" . formatText($result_sdi[$j]['sdii_name'], '2HTML') . "
" . PHP_EOL; hoverJsBox(); // including sparkline code footerAddJS('../lib/js/jquery.sparkline.min.js'); footerAddInlineJS("$('.inlinebar').sparkline('html', {type: 'bar', barColor: '#8DA8CB'} );"); echo $listing; } } function hoverJsBox() { $js = ''; footerAddInlineJS($js, 'default', false); } /** * DisplayOneSdi() * affichage d'un indicateur et infos résumé * @param $sdi_id * @param $scale_id * @return **/ if(!function_exists('DisplayOneSdi')) { function DisplayOneSdi($sdi_id, $scale_id) { echo GetSdiTitle($sdi_id, $scale_id); echo getDashboardNavigation($sdi_id,$scale_id); echo GetAllValue($sdi_id, $scale_id); echo GetOneSdiInfo($sdi_id); } } /** * DisplayOneSdirules() * affichage d'un indicateur et toutes ses infos * @param $sdi_id * @param $scale_id * @return **/ if(!function_exists('DisplayOneSdirules')) { function DisplayOneSdirules($sdi_id, $scale_id) { echo GetSdiTitle($sdi_id, $scale_id); echo getDashboardNavigation($sdi_id,$scale_id); echo GetOneSdiRules($sdi_id); } } /** * DisplayOneSdievaluation() * affichage d'un indicateur et toutes ses infos * @param $sdi_id * @param $scale_id * @return **/ if(!function_exists('DisplayOneSdievaluation')) { function DisplayOneSdievaluation($sdi_id, $scale_id) { echo GetSdiTitle($sdi_id, $scale_id); echo getDashboardNavigation($sdi_id,$scale_id); echo GetOneSdiEvaluation($sdi_id); } } /** * DisplayOneSdiprovider() * affichage d'un indicateur et toutes ses infos * @param $sdi_id * @param $scale_id * @return **/ if(!function_exists('DisplayOneSdiprovider')) { function DisplayOneSdiprovider($sdi_id, $scale_id) { echo GetSdiTitle($sdi_id, $scale_id); echo getDashboardNavigation($sdi_id,$scale_id); echo GetOneSdiProvider($sdi_id); } } /** * GetAllValue() * afficahge de l'ensemble des valeurs publiques d'un IDD * @param $sdi_id * @param $scale_id * @return **/ if(!function_exists('GetAllValue')) { function GetAllValue($sdi_id, $scale_id) { $result_value = $GLOBALS['sql_object'] -> DBSelect(SQL_getAllValue("SCD", $scale_id, $sdi_id)); $result_sdi_value = $GLOBALS['sql_object'] -> DBSelect(SQL_getInfoSdiforvalue($sdi_id)); // setting $default_threshold value // By default initial value $default_threshold = $result_sdi_value[0]['sdii_threshold_value']; $content = '
' . PHP_EOL; $content .= '

'._t('dashboard','historic').'

' . PHP_EOL; if(!empty($default_threshold)) $content .= '
'._t('sdi','initial_threshold_value').' : '.$result_sdi_value[0]['sdii_threshold_value'].' '.$result_sdi_value[0]['sdii_unit'].'
' . PHP_EOL; if ($result_value <> false) { if (count($result_value) > 2) { $content .= '

'._t('dashboard','rep_graph').'

' . PHP_EOL; $graph_path = override('../dashboard/graph.php'); $content .= "\"".formatText(_t('dashboard','rep_graph')," . PHP_EOL; } $content .= '

'._t('dashboard','value').'

' . PHP_EOL; $content .= '' . PHP_EOL; $content .= '' . PHP_EOL; $content .= '' . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; for ($i = 0;$i < count($result_value);$i++) { $comment = ''; $current_val = ''; // indicator is multivalues if(!empty($result_value[$i]['sdiv_multivalue'])) { $data = unserialize($result_value[$i]['sdiv_multivalue']); foreach($data as &$val) { $current_val .= '

'; if(!empty($val['label'])) $current_val .= $val['label']. ' : '; $current_val .= fnumber_format($val['value'], 'auto', false). ' ('.fnumber_format($val['_percentage'], 2, false).' %)'; $current_val .= '

'; } // we display the total $current_val .= '

'; $current_val .= mb_ucfirst(_t('dashboard', 'multivalue_total')) . ' : ' . fnumber_format($data[0]['_total'], 'auto', false); $current_val .= ' ('._t('dashboard', 'to_detail_chart').')'; $current_val .= '

'; // we compute rate if(isset($result_value[$i+1]['sdiv_multivalue'])) { $dataPlusOne = unserialize($result_value[$i+1]['sdiv_multivalue']); $evol = ($data[0]['_total'] - $dataPlusOne[0]['_total']) / $dataPlusOne[0]['_total'] * 100; //_debug('rate : '. fnumber_format($evol, 2). ' % - details : ('.$data[0]['_total']. ' - ' . $dataPlusOne[0]['_total']. ') / '. $dataPlusOne[0]['_total']); $evol = fnumber_format($evol, 2). ' %'; } else { $evol = empty_nc(''); } // indicator is NOT multivalues } else { // If indicator is boolean if($result_sdi_value[0]['sdii_type'] == 'boolean') { $a = getBooleanValues($result_sdi_value[0]); if($a) { $current_val .= $a[$result_value[$i]['sdiv_value']]; } else { $current_val .= fnumber_format($result_value[$i]['sdiv_value'], 'auto', false); } } else { $current_val .= fnumber_format($result_value[$i]['sdiv_value'], 'auto', false); } // $current_val .= fnumber_format($result_value[$i]['sdiv_value'], 'auto', false); // we compute rate if(isset($result_value[$i+1]['sdiv_value']) && is_numeric($result_value[$i+1]['sdiv_value'])) { $evol = ($result_value[$i]['sdiv_value'] - $result_value[$i+1]['sdiv_value']) / $result_value[$i+1]['sdiv_value'] * 100; _debug('rate : '. fnumber_format($evol, 2). ' % - details : ('.$result_value[$i]['sdiv_value']. ' - ' . $result_value[$i+1]['sdiv_value']. ') / '. $result_value[$i+1]['sdiv_value']); $evol = fnumber_format($evol, 2). ' %'; } else { $evol = empty_nc(''); } } // if set, we get it from the table if(!is_null($result_value[$i]['sdiv_threshold'])) { $threshold = fnumber_format($result_value[$i]['sdiv_threshold'], 'auto', false); } else { $threshold = fnumber_format($default_threshold, 'auto', false); } if(!empty($result_value[$i]['sdiv_comment']) && $result_value[$i]['sdiv_comment_display']=='Y') { $comment = '
'; $comment .= ''; $comment .= '
'.ucfirst(_t('dashboard', 'comment')).' : '.$result_value[$i]['sdiv_comment'].'
'; $comment .= '
'; } $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; } $content .= "" . PHP_EOL; $content .= "
".mb_ucfirst(_t('dashboard','date'))."".mb_ucfirst(_t('dashboard','value'))." (".$result_sdi_value[0]['sdii_unit'].")".mb_ucfirst(_t('dashboard','threshold_value'))."".mb_ucfirst(_t('dashboard','rate'))."".mb_ucfirst(_t('dashboard','comment'))."
" . formatText($result_value[$i]['date_p'], '2HTML') . "" . formatText($current_val, '2HTML') . "" . formatText($threshold, '2HTML') . "". $evol. "". $comment. "
" . PHP_EOL; $content .= '
' . PHP_EOL; return $content; } } } /** * GetSdiTitle() * affichage nom d'un indicateur * @param $sdi_id * @param $scale_id * @return **/ if(!function_exists('GetSdiTitle')) { function GetSdiTitle($sdi_id, $scale_id) { $link_self= array('rub'=> $GLOBALS['links'][U_L]['dashboard']['linkvalue'],'id' => $sdi_id, 'parentid' => $_REQUEST['parentid']); $data_sdi = $GLOBALS['sql_object'] -> DBSelect(SQL_getOnesdiname($sdi_id, array('P'))); if($data_sdi == 0) error_redirect(); $data_scale = $GLOBALS['sql_object'] -> DBSelect(SQL_getonescale($scale_id)); $sdi_name = formatText($data_sdi[0]['sdii_name'], '2HTML'); $sdi_description = formatText($data_sdi[0]['sdii_description'], '2HTML'); $scale_name = formatText(cutText($data_scale[0]['scale_denomination'], 150), '2HTML'); $content = '
' . PHP_EOL; $content .= '

' . mb_ucfirst($sdi_name) . '

' . PHP_EOL; $content .='

'.PHP_EOL; $content .= formatted_permalink($link_self); $content .='

'.PHP_EOL; $content .= '
' . $sdi_description . '
' . PHP_EOL; $content .= '

échelle : ' . $scale_name . '

' . PHP_EOL; $content .= '
' . PHP_EOL; return $content; } } /** * GetOneSdiInfo() * récupération des infos générales d'un indicateur * @param $sdi_id * @return **/ if(!function_exists('GetOneSdiInfo')) { function GetOneSdiInfo($sdi_id) { $data = $GLOBALS['sql_object'] -> DBSelect(SQL_getInfoSdi($sdi_id)); $sdi_name = formatText($data[0]['sdii_name'], '2HTML'); $sdi_theme = formatText(cutText($data[0]['theme_name'], 150), '2HTML'); $sdi_description = formatText($data[0]['sdii_description'], '2HTML'); $sdi_comment = formatText($data[0]['sdii_comment'], '2HTML'); $sdi_goal = formatText($data[0]['sdii_goal'], '2HTML'); $sdi_consulting = formatText($data[0]['sdii_consulting'], '2HTML'); $content = '
' . PHP_EOL; $content .= '

'.mb_ucfirst(_t('dashboard','det_sdi2')).'

' . PHP_EOL; $content .= '

'.mb_ucfirst(_t('sdi','goal_public')).'

' . PHP_EOL; $content .= '
' . $sdi_goal . '
' . PHP_EOL; $content .= '

'.mb_ucfirst(_t('sdi','consulting_public')).'

' . PHP_EOL; $content .= '
' . $sdi_consulting . '
' . PHP_EOL; $content .= '

' . PHP_EOL; return $content; } } /** * GetOneSdiRules() * récupération des réglementations d'un indicateur * @param $sdi_id * @return **/ if(!function_exists('GetOneSdiRules')) { function GetOneSdiRules($sdi_id) { $result_r = $GLOBALS['sql_object'] -> DBSelect(SQL_getRules($sdi_id, $GLOBALS['sql_object'], -1)); $r_title = formatText($result_r[0]['sdir_title'], '2HTML'); $r_body = formatText($result_r[0]['sdir_body'], '2HTML'); if(!empty($result_r[0]['sdir_referer_uri'])) { $url = "" . formatText($result_r[0]['sdir_mask_uri'], '2HTML') . ""; } $content = '
' . PHP_EOL; $content .= '

'.mb_ucfirst(_t('sdi','r_body')).'

' . PHP_EOL; if ($result_r[0]['sdir_title'] == "") { $content .= "

"._t('divers','nodata')."

" . PHP_EOL; } else { $content .= "

" . $r_title . "

" . PHP_EOL; $content .= "
" . $r_body . "
" . PHP_EOL; if(isset($url)) { $content .= "

" . $url . "

" . PHP_EOL; } } $content .= '
' . PHP_EOL; return $content; } } /** * GetOneSdiEvaluation() * récupération des critères d'évaluation d'un indicateur * @param $sdi_id * @return **/ if(!function_exists('GetOneSdiEvaluation')) { function GetOneSdiEvaluation($sdi_id) { $result_e = $GLOBALS['sql_object'] -> DBSelect(SQL_getEvaluation($sdi_id, $GLOBALS['sql_object'], -1)); $content = '
' . PHP_EOL; $content .= '

'.mb_ucfirst(_t('sdi','e_title')).'

' . PHP_EOL; $content .= '' . PHP_EOL; $content .= '' . PHP_EOL; $content .= '' . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "" . PHP_EOL; $content .= "
"._t('sdi','e_scale_compare').""._t('sdi','e_fiability').""._t('sdi','e_accessibility').""._t('sdi','e_lisibility').""._t('sdi','e_relevance').""._t('sdi','e_global_performance')."
" . $result_e[0]['sdie_scale_compare'] . "" . $result_e[0]['sdie_fiability'] . "" . $result_e[0]['sdie_accessibility'] . "" . $result_e[0]['sdie_lisibility'] . "" . $result_e[0]['sdie_relevance'] . "" . $result_e[0]['sdie_global_performance'] . "
" . PHP_EOL; $content .= '
' . PHP_EOL; return $content; } } /** * GetOneSdiProvider() * récupération des infos du fournisseurs d'un indicateur * @param $sdi_id * @return **/ if(!function_exists('GetOneSdiProvider')) { function GetOneSdiProvider($sdi_id) { $result_p = $GLOBALS['sql_object'] -> DBSelect(SQL_getProvider($sdi_id, $GLOBALS['sql_object'], -1)); $p_name = formatText($result_p[0]['sdip_name'], '2HTML'); $p_description = formatText($result_p[0]['sdip_description'], '2HTML'); $content = '
' . PHP_EOL; $content .= '

'.mb_ucfirst(_t('sdi','p_title')).'

' . PHP_EOL; if ($result_p[0]['sdip_name'] == "") { $content .= "

"._t('divers','nodata')."

" . PHP_EOL; } else { $content .= '

' . $p_name . '

' . PHP_EOL; $content .= '
' . $p_description . '
' . PHP_EOL; } $content .= '
' . PHP_EOL; return $content; } } /** * getDataVizMode() * return a link to switch display mode * @param $scale_id * @return string * @todo remove or use to display tabular data **/ if(!function_exists('getDataVizSwitcher')) { function getDataVizSwitcher($altmode, $scale_id) { if( $altmode ) { $link = array('rub'=> $GLOBALS['links'][U_L]['dashboard']['linkvalue'], 'id' => $scale_id); $msg = _t('dashboard', 'mode_by_finality'); } else { $link = array('rub'=> $GLOBALS['links'][U_L]['dashboard']['linkvalue'], 'id' => $scale_id, 'altmode' => true); $msg = _t('dashboard', 'mode_by_project'); } // adding these vars to url allow to display the right scale into filter box // @todo filters should be enhanced if(array_key_exists('filter', $_REQUEST) && $_REQUEST['filter'] == $GLOBALS['filters'][U_L]['scale']['linkvalue']) { $link = array_merge($link, array('filter' => $GLOBALS['filters'][U_L]['scale']['linkvalue'])); } $str = '
'; $str .= ''.$msg.''.PHP_EOL; $str .= '
'; return $str; } } /** * getDashboardNavigation() * Return a string with the internal navigation * @param int * @param int * @return string **/ if(!function_exists('getDashboardNavigation')) { function getDashboardNavigation($sdi_id,$scale_id) { $data = $GLOBALS['sql_object'] -> DBSelect(SQL_getOnesdiname($sdi_id)); $link_aff_info = HrefMaker(array('rub' => $GLOBALS['links'][U_L]['dashboard']['linkvalue'],'id' => $sdi_id, 'parentid' => $scale_id, 'name' => $data[0]['sdii_name'])); $link_aff_rules = HrefMaker(array('rub' => $GLOBALS['links'][U_L]['dashboard-rules']['linkvalue'], 'id' => $sdi_id, 'parentid' => $scale_id, 'name' => $data[0]['sdii_name'])); $link_aff_provider = HrefMaker(array('rub' => $GLOBALS['links'][U_L]['dashboard-provider']['linkvalue'],'id' => $sdi_id, 'parentid' => $scale_id, 'name' => $data[0]['sdii_name'])); $link_aff_evaluation = HrefMaker(array('rub' => $GLOBALS['links'][U_L]['dashboard-assessment']['linkvalue'], 'id' => $sdi_id, 'parentid' => $scale_id, 'name' => $data[0]['sdii_name'])); ActiveItemKey($GLOBALS['activeitem'])=='dashboard' ? $info_class='active' : $info_class=''; ActiveItemKey($GLOBALS['activeitem'])=='dashboard-rules' ? $rules_class='active' : $rules_class=''; ActiveItemKey($GLOBALS['activeitem'])=='dashboard-assessment' ? $assessment_class='active' : $assessment_class=''; ActiveItemKey($GLOBALS['activeitem'])=='dashboard-provider' ? $provider_class='active' : $provider_class=''; $content ="
". PHP_EOL; $content .="". PHP_EOL; $content .="
". PHP_EOL; return $content; } } ?>