初めまして。
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
Develモジュールをインストールして、 dpm($te
Develモジュールをインストールして、
とかで確認してみてはどうでしょう?