J'essaie d'afficher les résultats du formulaire Web sous forme de graphiques Google . Je fais cela sur la couche de thème en remplaçant theme_webform_results_analysis () sur le fichier template.php de mon thème et en utilisant le module Chart . Drupal 6.22, Webform 6.x-3.11.
La page d'analyse du formulaire Web affiche normalement les données dans une table, donc j'essaie de pirater les tableaux pour que cette table passe des choses dans l' API Chart .
EDIT : J'ai compris comment utiliser var_dump et j'ai trouvé que la meilleure approche pourrait être de se lever séparément dans les tableaux $ row_data et $ questions (au lieu d'utiliser le tableau $ lines que j'avais dans la première version de cette question, qui était un mashup des deux tableaux).
EDIT # 2 : Je pense avoir découvert comment récupérer chaque morceau des tableaux $ questions et $ row_data originaux (voir ci-dessous - le foreach dans l'autre foreach). Alors maintenant, je dois mettre ces morceaux dans des tableaux appropriés (1 par question) et trouver un moyen de parcourir tous ces éléments.
Voici ce que j'ai dans template.php:
/**
* Output the content of the Analysis page.
* @see webform_results_analysis()
*/
function mytheme_webform_results_analysis($node, $data, $sids = array(), $analysis_component = NULL) {
foreach ($data as $cid => $row_data) {
if (is_array($row_data)) {
// get the questions, put them in an array
$questions = array();
$questions[] = array('data' => check_plain($node->webform['components'][$cid]['name']));
// this will print everything out in the right order - it really needs to
// make an array for each question that looks like $test_chart below
foreach ($questions as $question) {
print $question['data'] . '<br />'; // questions
foreach ($row_data as $key => $value) {
print $value[0] . '<br />'; // labels
print $value[1] . '<br />'; // results
}
}
// Set up the chart
$chart = array(
'#chart_id' => 'webform_analysis',
'#type' => CHART_TYPE_PIE_3D,
'#size' => chart_size(658, 250)
);
// not real data here, this just shows the format I'm shooting for
$test_chart = array(
'option 1' => '12',
'option 2' => '45',
'option 3' => '122'
);
// separate the above array into labels and values, add a percentage to the label
foreach ($test_chart as $key => $value) {
$chart['#data'][] = $test_chart[$key];
$chart['#labels'][] = strip_tags($key) . ' (' . round($test_chart[$key], 2) . '%)';
}
// pick some colors
$chart['#data_colors'][] = 'b0c73d';
$chart['#data_colors'][] = '667323';
$chart['#data_colors'][] = '221f1f';
$output = chart_render($chart);
}
}
if (count($row_data) == 0) {
$output = t('There are no submissions for this form.');
}
// return the data that goes into chart function, just for testing
// return $chart_data;
// someday, this might return a set of webform charts. right now it returns the fake test chart
// return $output;
}
Réponses:
Il existe un autre module de graphiques Drupal qui prend en charge les formulaires Web: http://drupal.org/project/fusioncharts
Fusionchart a un petit sous-module appelé fusioncharts_webform
la source
Plus de 3 ans plus tard maintenant, je sais, mais les choses ont un peu évolué depuis lors ...
En ne considérant que le titre de cette question, on pourrait vouloir résoudre ce problème via le module Graphiques ces jours-ci (bien que la question d'origine soit partie de Chart , qui est un autre module). Et cela en combinaison avec un graphique Webform ou des graphiques Webform .
En fonction de vos besoins actuels, il apparaît qu'avec ces 2 modules liés à Webform, beaucoup peut être réalisé par les activités de construction de sites (probablement plus besoin de compétences pour les développeurs Drupal). Reportez-vous à la puce 5 dans Modules facilitant la création de graphiques via le module Graphiques pour plus de détails sur ces modules Webform Chart (et un lien vers une discussion intéressante).
Utilisez la comparaison des modules de cartographie pour d'autres alternatives potentielles de nos jours (et soyez prêt à vraiment vous embrouiller au sujet des dizaines de modules de cartographie disponibles ...).
Attention: je suis un (co-) mainteneur de Chart and Charts et l'auteur des modules Comparison of Charting . J'essaie de continuer les contributions (étonnantes) de Quicksketch à Charts, qui est également le mainteneur de Webform et de Webform ChartS (avec un 's').
PS: Désolé pour tous ces espaces de noms déroutants *, je ne les ai pas inventés ...
la source