আমি গুগল চার্ট হিসাবে ওয়েবফর্মের ফলাফলগুলি প্রদর্শন করার চেষ্টা করছি । আমি আমার থিমের টেমপ্লেট.এফপি ফাইলে থিম_উইবফর্ম_সাল্টস_অ্যানালাইসিস () কে ওভাররাইড করে এবং চার্ট মডিউলটি ব্যবহার করে এটি করছি । ড্রুপাল 6.22, ওয়েবফর্ম 6.x-3.11।
ওয়েবফর্ম বিশ্লেষণ পৃষ্ঠাটি সাধারণত কোনও টেবিলের ডেটা দেখায়, তাই আমি সেই টেবিলটির জন্য চার্ট এপিআইতে স্টাফ দেওয়ার জন্য অ্যারেগুলি হ্যাক করার চেষ্টা করছি ।
সম্পাদনা : আমি কীভাবে var_dump ব্যবহার করতে হবে তা আবিষ্কার করেছি এবং দেখেছি যে approach সারি_ডাটা এবং $ প্রশ্ন অ্যারে আলাদাভাবে উঠতে পারে (এই প্রশ্নের প্রথম সংস্করণে had সারি অ্যারে ব্যবহার না করে যা ছিল) উভয় অ্যারে একটি ম্যাসআপ)।
সম্পাদনা # 2 : আমি মনে করি যে আমি কীভাবে মূল $ প্রশ্ন এবং $ সারি_ডাটা অ্যারেগুলির প্রতিটি টুকরো ধরতে পারি (নীচে দেখুন - অন্যান্য অগ্রভাগে ভবিষ্যদ্বাণী)। সুতরাং এখন আমার সেই টুকরোগুলি যথাযথ অ্যারে (প্রশ্ন প্রতি 1) এ নেওয়া দরকার এবং সেগুলির মাধ্যমে পুনরাবৃত্তি করার একটি উপায় খুঁজে বের করতে হবে।
টেমপ্লেট.এফপিতে আমি যা পেয়েছি তা এখানে:
/**
* 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;
}