Estou tentando exibir resultados de formulários da web como gráficos do Google . Estou fazendo isso na camada de tema, substituindo theme_webform_results_analysis () no arquivo template.php do meu tema e usando o módulo Gráfico . Drupal 6.22, Webform 6.x-3.11.
A página de análise do formulário da web normalmente mostra os dados em uma tabela, então estou tentando separar as matrizes para que essa tabela passe coisas para a API do gráfico .
EDIT : Eu descobri como usar var_dump e descobri que a melhor abordagem seria levantar as matrizes $ row_data e $ questions separadamente (em vez de usar a matriz $ lines que eu tinha na primeira versão desta pergunta, que era um mashup de ambas as matrizes).
Edição # 2 : Eu acho que descobri como pegar cada parte das matrizes $ questions e $ row_data originais (veja abaixo - o foreach no outro foreach). Portanto, agora eu preciso colocar essas peças em matrizes apropriadas (1 por pergunta) e encontrar uma maneira de iterar todas elas.
Aqui está o que eu tenho no 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;
}
Respostas:
Há outro módulo de gráficos do Drupal que fornece suporte para webforms: http://drupal.org/project/fusioncharts
O Fusionchart tem um pequeno submódulo chamado fusioncharts_webform
fonte
Mais de três anos depois, eu sei, mas as coisas evoluíram um pouco desde então ...
Considerando apenas o título desta pergunta, é possível abordar isso por meio do módulo Charts atualmente (embora a pergunta original tenha começado no Chart , que é outro módulo). E isso em combinação com o Webform Chart ou o Webform Charts .
Dependendo de quais são suas necessidades atuais, parece que, com esses dois módulos relacionados ao Webform, muito pode ser alcançado através das atividades de criação de sites (provavelmente não há mais necessidade das habilidades dos desenvolvedores do Drupal). Consulte o marcador 5 em Módulos que facilitam a criação de gráficos por meio do módulo Gráficos para obter mais detalhes sobre esses módulos do (s) gráfico (s) da Web (e link para uma discussão interessante).
Use a Comparação de módulos de gráficos para outras alternativas em potencial hoje em dia (e esteja pronto para realmente ficar confuso sobre as dezenas de módulos de gráficos disponíveis ...).
Esteja ciente: Eu sou um novo (co-) mantenedor do Gráfico e gráficos , e o autor da Comparação de módulos gráficos . Estou tentando continuar as contribuições (surpreendentes) do Quicksketch para o Charts, que também é o mantenedor do Webform e do Webform ChartS (com 's').
PS: Desculpe por todos esses namespaces * gráficos confusos, eu não os inventei ...
fonte