Google चार्ट में वेबफ़ॉर्म परिणाम डेटा प्रदर्शित करता है


11

मैं Google चार्ट के रूप में वेबफ़ॉर्म परिणाम प्रदर्शित करने का प्रयास कर रहा हूं । मैं अपनी थीम के template.php फ़ाइल पर theme_webform_results_analysis () को ओवरराइड करके और चार्ट मॉड्यूल का उपयोग करके थीम लेयर पर कर रहा हूं । Drupal 6.22, वेबफॉर्म 6.x-3.11।

वेबफॉर्म विश्लेषण पृष्ठ सामान्य रूप से एक तालिका में डेटा दिखाता है, इसलिए मैं चार्ट एपीआई में सामान पास करने के लिए उस तालिका के सरणियों को हैक करने की कोशिश कर रहा हूं ।

संपादित करें : मैंने सोचा कि कैसे var_dump का उपयोग किया जाए और पाया कि बेहतर तरीका $ row_data और $ प्रश्न सरणियों में अलग-अलग हो सकता है (बजाय $ पंक्तियों के सरणी का उपयोग करने के लिए जो मुझे इस प्रश्न के पहले संस्करण में मिला था) दोनों सरणियों का एक मैशप)।

संपादित करें # 2 : मुझे लगता है कि मुझे पता चला है कि मूल $ प्रश्नों और $ row_data सरणियों के प्रत्येक टुकड़े को कैसे पकड़ा जाए (नीचे देखें - दूसरे फॉर्च्यूनर में फॉर्च्यूनर)। इसलिए अब मुझे उन टुकड़ों को उचित सरणियों में लाने की आवश्यकता है (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;
}

1
क्या आपने अपना प्रश्न हल किया यदि ऐसा है तो अपना जवाब पोस्ट करें
iStryker

नहीं, मैंने अभी तक इसका पता नहीं लगाया है। यह अभी तक जारी है जब तक मैं "शुरुआती PHP और MySQL5: नौसिखिए से पेशेवर" ( लिंक ) को पढ़ना समाप्त नहीं करता , और फिर मैं इसे एक और शॉट देने जा रहा हूं। मैंने ऑनलाइन मदद प्राप्त की, इसलिए मुझे लगा कि मुझे इस मुश्किल काम को करने से पहले फंडामेंटल पर एक बेहतर हैंडल प्राप्त करने की आवश्यकता है।
सारा जर्मन

जवाबों:


2

एक अन्य ड्रुपल चार्ट मॉड्यूल है जो वेबफॉर्म के लिए समर्थन प्रदान करता है: http://drupal.org/project/fusioncharts

Fusionchart में एक छोटा उप-मॉड्यूल है जिसे fusioncharts_webform कहा जाता है


आपके प्रतिक्रिया के लिए धन्येवाद! मैंने FusionCharts को देखा, लेकिन यह मेरी परियोजना के लिए एक अच्छा फिट नहीं है क्योंकि यह फ्लैश का उपयोग करता है और हमें भुगतान किए गए संस्करण की आवश्यकता होगी - हम ओपन-सोर्स समाधानों से चिपके रहने की कोशिश करते हैं। लेकिन यह अच्छा लग रहा है, मुझे यकीन है कि बहुत से लोगों के लिए इस समस्या का हल है।
सारा जर्मन

1

और फिर 3 साल बाद अब, मुझे पता है, लेकिन तब से चीजें थोड़ी विकसित हुई हैं ...

केवल इस प्रश्न के शीर्षक पर विचार करके, कोई इन दिनों चार्ट्स मॉड्यूल के माध्यम से इसे संबोधित करना चाह सकता है (हालांकि मूल प्रश्न चार्ट से शुरू हुआ , जो एक अन्य मॉड्यूल है)। और यह या तो वेबफॉर्म चार्ट या वेबफॉर्म चार्ट के साथ संयोजन में है ।

आज आपकी वास्तविक ज़रूरतें क्या हैं, इस पर निर्भर करते हुए, यह प्रतीत होता है कि इन 2 वेबफॉर्म से संबंधित मॉड्यूल के साथ, साइट निर्माण गतिविधियों (शायद ड्रुपल डेवलपर्स कौशल की अधिक आवश्यकता नहीं) द्वारा बहुत कुछ हासिल किया जा सकता है। इन वेबफॉर्म चार्ट (एस) मॉड्यूल (और एक दिलचस्प चर्चा के लिए लिंक) के बारे में अधिक जानकारी के लिए चार्ट मॉड्यूल के माध्यम से चार्टिंग की सुविधा वाले मॉड्यूल में बुलेट 5 का संदर्भ लें ।

इन दिनों संभावित अन्य विकल्पों के लिए चार्टिंग मॉड्यूल की तुलना का उपयोग करें (और वास्तव में दर्जनों चार्टिंग मॉड्यूल के बारे में भ्रमित होने के लिए तैयार रहें ...)।

जागरूक रहें: मैं चार्ट और चार्ट का एक नया (सह) अनुरक्षक हूं , और चार्टिंग मॉड्यूल की तुलना का लेखक हूं । मैं चार्ट्स के लिए Quicksketch (अद्भुत) योगदान जारी रखने की कोशिश कर रहा हूं, जो वेबफॉर्म और वेबफॉर्म चार्ट्स (एक 's' के साथ) का अनुरक्षक भी है।

पुनश्च: सभी भ्रमित करने वालों के लिए क्षमा करें * चार्ट (नाम) नामस्थान, मैंने उन्हें आविष्कार नहीं किया ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.