ChartModuleで文字化け

Events happening in the community are now at Drupal community events on www.drupal.org.
codeiP's picture

初めまして。

webformにて、アンケート応募ページを作成して、その応募データから、結果を集計して
Chartモジュールを使って、サイトにグラフを表示しようとしています。

グラフのタイプは棒グラフ(CHART_TYPE_BAR_H)で
項目のラベル部分に「その他」を表示したいのですが、「その他」部分が文字化けをしてしまいます。
どなたか対策や原因について、思い当たる方がいらっしゃいましたらご教授願えますか。

■環境:
CentOS6.3
PHP5.3.3
MySQL Ver 14.14 Distrib 5.1.66, for redhat-linux-gnu (x86_64) using readline 5.1
Drupalのバージョン:7.22
Chartモジュールのバージョン:version = "7.x-1.1"

■試したこと
・"その他"と直接入れると正常に表示される。
$chart['#mixed_axis_labels'][CHART_AXIS_Y_LEFT][0][] = chart_mixed_axis_label("その他");
・画像サイズを変更したが文字化けしたまま。
・棒グラフのサイズを変更したが効果なし。

■ソース
汚いし、長いですが一応ソースも貼ります。

define("COMPE_ID", 12);
define("IS_ANALYZE_SOFT_CID", 9);
define("IS_ANALYZE_METHOD_CID", 20);

function makeGraph(&$node, &$build){
//グラフ初期化処理
$bar_analyze_soft = array(
'#chart_id' => 'analyze_soft',
'#title' => t(''),
'#type' => CHART_TYPE_BAR_H,
'#adjust_resolution' => TRUE,
'#size' => chart_size(400, 400),
'#bar_size' => chart_bar_size(10, 5),
);
$query = db_select('webform_submitted_data', 'wsd');
$query->fields('wsd', array('sid'));
$query->condition('wsd.data', $node->nid, '=');
$query->condition('wsd.cid', COMPE_ID, '=');
$query_results = $query->execute()->fetchAll();

    //ORを先に作っておく
    $db_or = db_or();
    $db_or->condition('wsd.cid', IS_ANALYZE_SOFT_CID, '=');
    $db_or->condition('wsd.cid', IS_ANALYZE_METHOD_CID, '=');

    foreach ($sub_query_results as $submit) {
      $query = db_select('webform_submitted_data', 'wsd');
      $query->fields('wsd');
      $query->condition('wsd.sid', $submit->sid, '=');
      $query->condition($db_or);
      $query_results = $query->execute()->fetchAll();
      foreach ($query_results as $data) {
        if($data->cid == IS_ANALYZE_SOFT_CID){
          if(isset($bar_analyze_soft['#data'][$data->data])){
            $bar_analyze_soft['#data'][$data->data] = $bar_analyze_soft['#data'][$data->data] + 1;
          }else{
            $bar_analyze_soft['#data'][$data->data] = 1;
            //ラベルを設定
            $tid = str_replace("tid_", "", $data->data);
            $term = taxonomy_term_load($tid);                
            $bar_analyze_soft['#mixed_axis_labels'][CHART_AXIS_Y_LEFT][0][] = chart_mixed_axis_label($term->name);                
          }
        }
        }
      }
    }
    $bar_analyze_soft['#mixed_axis_labels'][CHART_AXIS_X_BOTTOM][0][] = chart_mixed_axis_range_label(0, 10);

    $build['#bar_analyze_soft'] = theme('chart', array('chart' => $bar_analyze_soft));

}

Comments

blauerberg's picture

Develモジュールをインストールして、

dpm($term);

とかで確認してみてはどうでしょう?

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: