charts.inc.php Edit

目的欲しいプラグイン/257で紹介されたmaanigraph.inc.phpを参考に作り直しました。(但し最終的にプログラムは全部変更しています。)
PHP/SWF Charts 4.5を利用する為のプラグイン
対応バージョン1.4.7plus-i18nで確認
作成者taru
公開日2006-9-30 (土) 23:55:52
ライセンスプラグイン部分はGPL

 欲しいプラグイン/257を見た時にこれってtable_edit2.inc.phpを元に作り直せるのではと考え早速実行してみました。ちなみに、そこで紹介されているmaanigraph.inc.phpはPukiWiki Plus!では動かせない作り*1になっています。
 このプラグインはhttp://www.maani.us/charts/index.phpで配布されているPHPとFlashを利用した「配列データからグラフを作る(PHP/SWF Charts 4.5)」PukiWikiで使えるようにする為のものです。table_edit2.inc.phpを元に改造している事から判ると思いますがデータはWikiページ上の表組みから取得します。

進行状況 Edit

予定(案)状況発案日完了日Ver
複数行プラグイン書式でxmlオプションを指定可能に完了diary/2006-10-0506-10-080.5
サイズとバックカラーを変更可能にオプション指定のみです、セッティングフォームへの表示は微妙かもなので略 完了06/09/2706/09/300.2
別ページ名も指定可能に保留 需要次第? コードがややこしくなりそうなのであまりやる気は無い06/09/2707/11/151.3
表組み(データ元)が邪魔な場合に複数行プラグイン書式の{{}}で隠す確認してみたところ変更無しでいけるようです。 完了06/09/2706/09/300.2
swfファイルに引渡すためのxml定義用phpプログラムを廃止しactionコマンドで実行できる様に変更互換性が悪い*2のと.htaccessに影響を受けるので重要、diary/2006-09-27でとりあえず動くようになった事で引渡している正常なデータを確認する事が可能になりそれを参考に直接xmlを定義する方式に変更 完了06/09/2706/09/300.2
swfファイルをpluginフォルダからskinフォルダに移動upkさんから指摘もあった通りこの仕様*3だとPlus!では使えないのと互換性が悪いので重要 完了06/09/2706/09/300.2
項目の切替(1列目⇔1行目)maanigraph.inc.phpでは改良という形で初期の仕様から固定変更していたが両方必要だと思うので自由に切り替える事ができる仕様にした。(難しくないしね)06/09/2306/09/250.1
グラフ変更リストグラフの種類が多すぎて切替が大変なので追加 完了06/09/2306/09/250.1
グラフ変更リストの表示、非表示制御ボタンやtable_edit2.inc.phpの機能table_edit2.inc.phpをベースにコードをそのまま移植 完了06/09/2306/09/250.1

仕様 Edit

  • 同じページ上の表組みからデータを取得してグラフを作成します。
  • 項目名に日本語(全角文字)は使えません。
  • 表組みの書き方
    aaaa2aa3
    b1102030
    b2111213
    b3111213
    • 一列目、一行目が項目になります。
    • 必ず左上のセルは空白にして置いてください。
  • chartsプラグインの記述(1つ目の表組みを指定する場合)
    #charts(table_num=1)
    • 最初の指定はこれだけでいけると思います。必要に応じてオプションを追加してください。
    • グラフタイプを手動で指定する場合、必ず後ろにカンマ(,)を付けて下さい。(例 graph_mod=column,)
    • IEと相性が悪いようなのでグラフの表示が崩れている場合は更新を掛けてください。

オプション Edit

編集で設置できるオプション

オプション説明引数内容
table_numページ上の表組みを上から数えた数字、3つ目の表を参照したい場合は3を指定数字
setting設定を変更するフォームの表示・非表示on表示(制限ページは表示、凍結ページは非表示)
off非表示
auth_check_off編集を認証制限しているページに設定変更フォームで変更を可能にする無し
width横幅をピクセル単位で指定ピクセル初期値400
height縦幅をピクセル単位で指定ピクセル初期値250
bg_color背景色を変更するRBG#(シャープ)はいりません。
chart_transitionグラフを表示する時にアニメーションで動作無し
chart_valueグラフの要素の中央に要素数値を表示します任意の文字引数の任意文字が無い場合は数値だけ表示
xml_readxml_readを指定することで複数行プラグイン内で指定したxmlオプションを読込みます。「例 #charts(table_num=x,xml_read){{xmlでオプションを指定}}」xml指定するオプションはReferenceを参考に指定してください。
list_page別ページに作成した表組データを参照する
Ver1.3以降
ページ名

設定フォームの操作で設置できるオプション

オプション説明引数内容
graph_modグラフの上にリストメニューが出るので、そこで選択してください。リストで表示されるグラフ
change表組みの行・列参照をチェンジします01行目を基点に
11列目を基点に
list_mod設定を変更するフォームの簡易 表示・非表示open表示、グラフ右上に×のマークが出ます。

define設定 Edit

  • グラフ変更後、変更したグラフの場所に戻る機能ですが、Windows系サーバで不具合が確認されたためVer1.2以降からページに戻る機能のみに設定しています。必要な場合はcharts.inc.phpの先頭部分に記述されているdefine設定値の0を1に変更して下さい。
define('PLUGIN_CHARTS_ANCHR_JUMP', 0);

サンプル Edit

テストはこちらで試せます。

test table1 Edit

20012002200320042005
Test 12325323148
Test 26822501567
てすと 31167447158

test charts1 Edit

#charts(table_num=6,auth_check_off,setting=on,graph_mod=3d column,list_mod=open,change=0)
column row

test charts2 Edit

#charts(table_num=6,graph_mod=3d column,chart_transition,width=300,height=200,bg_color=ff8888)

test charts3 Edit

#charts(table_num=6,graph_mod=column,chart_transition,chart_value=pt)

test charts4 Edit

複数行プラグイン書式でxmlオプションを記入してみる(charts.inc.php Ver0.6)

#charts(table_num=6,graph_mod=column,xml_read){{{
<draw>
	<text transition="slide_left" delay="1" duration="1" x="0" y="250"  width="250" height="100" h_align="center" v_align="top" rotation="-90"  font="arial" bold="true" size="65" color="4400ff" alpha="90">graph</text> 
</draw>
<chart_transition type="drop" delay="1" duration="2" order="series" />
}}} 

test charts5(charts.inc.php Ver0.7) Edit

ダウンロード Edit

  • http://www.maani.us/charts/index.phpの左メニューからDownloadを選び PHP/SWF Charts 4.5 をダウンロードしてください。
  • ダウンロードした圧縮ファイルを展開して、その中のcharts.swf,charts_libraryをskinフォルダに置いてください。charts.php(Ver0.5以降はcharts.phpを使わない形式に変更しました。)はpluginフォルダに置いてください。
  • 下に添付されているcharts.inc.php.x.xはダウンロード後、右側の数字を消してcharts.inc.phpにリネーム後、pluginフォルダに置いてください。
  • 設定を表示するときのマークはこちらで作ったものなので(chart.png)を保存してください。設置フォルダは/image/plus/です。
ファイルVer日付コメント
filecharts.inc.php.0.4+0.4'06/10/31グラフ内の標準フォントが日本語に対応していないため、一部ラベルに日本語対応のフォントを指定しました。
filecharts.inc.php.0.40.406/10/01設定フォームを表示するマークに最初list.pngを使っていたのですが、流石にリストマークじゃまずいので新しく作った画像chart.pngを利用するように変更しました。
filecharts.inc.php.0.30.306/10/01タグの追加でオプションを増やせる事がわかったのでchart_transitionとchart_valuを追加しました。バグを少し修正
  • 実験バージョン(複数行プラグイン書式で与えた情報をそのままSWFに引渡します。SWFがそのまま情報吐き出すわけでは無いのでXSSの問題は無いと判断したのですが、フィルタを作るべきでしょうか?)
ファイルVer日付コメント
filecharts.inc.php.1.4.1.zip.tgz1.4'09/07/13 別ページに作成した表組みデータを参照する機能を使った場合、複数行プラグイン書式を利用したxmlオプション機能が利用できない問題に対応しました。
 2重に圧縮されています。tgz→zipと解凍してください。
filecharts.inc.php.1.3.zip.tgz1.3'07/11/15 別ページに作成した表組みデータを参照する機能を追加しました。
 2重に圧縮されています。tgz→zipと解凍してください。
filecharts.inc.php.1.2.zip.tgz1.2'07/11/14 グラフ変更後、アンカーへ飛ぶ処理はサーバー環境によってうまく機能しないため、
define('PLUGIN_CHARTS_ANCHR_JUMP', 0);を追加してページに戻る処理だけをするように変更しました。
 $scriptを使うのを止めget_script_uri()を使うようにしました。
 2重に圧縮されています。tgz→zipと解凍してください。
filecharts.inc.php.1.1.zip.tgz1.1'07/10/13auth_check_offを設定していると凍結しても凍結が有効にならない問題に対応。
2重に圧縮されています。tgz→zipと解凍してください。
filecharts.inc.php.1.0.zip.tgz1.0'07/07/01EUC版と本家1.4.7対応用のコードをtable_edit2.inc.phpからコピペしただけです。
i18n利用の場合は0.9で十分です。
2重に圧縮されています。tgz→zipと解凍してください。
filecharts.inc.php.0.90.9'07/01/11diary/2007-01-08で行ったXHTMLへの無理やり対応バージョンです。
とりあえず問題無く動作しているみたいなので、アップしてみました。
filecharts.inc.php.0.80.8'06/10/31グラフ内の標準フォントが日本語に対応していないため、一部ラベルに日本語対応のフォントを指定しました。
filecharts.inc.php.0.70.7'06/10/12変更しようと思っていて、動作に影響しないから放置していた個所を幾つか変更しました。動作は0.6と同じです。
filecharts.inc.php.0.60.606/10/09html定義の所で悲しいミスをしていました。「"」の付け忘れです。チェックをIEで行っていた為、このミスを補正するというふざけた機能を発揮しOperaとFireFoxで確認するまで気づかないという事態に陥っていました。IEはほんとだめぽorz
filecharts.inc.php.0.50.506/10/08複数行プラグイン書式を利用してxmlオプションを追加できるようにしました。charts.phpを使わないでhtmlをプラグイン内で定義しました。(ダウンロードはXML/SWF Charts 4.5からしても問題無いでしょう)

コメント Edit

  • テストカキコキ -- taru 2006-10-03 (火) 23:17:15
  • XHTMLに対応させるためobjectタグからembedタグを抜き取る。
    • 150行目付近
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
	$html = <<<EOD
-<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
-	codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
+<object 
+	data="$flash_file?library_path=$library_path&amp;php_source=$php_source$license"
+	type="application/x-shockwave-flash"
	
	width="$width" height="$height" id="charts$count">
		<param name="movie"   value="$flash_file?library_path=$library_path&amp;php_source=$php_source$license" />
		<param name="quality" value="high" />
		<param name="bgcolor" value="#$bg_color" />$transparent_html
-		<embed src="$flash_file?library_path=$library_path&amp;php_source=$php_source$license" quality="high"
-			 bgcolor="#$bg_color" width="$width" height="$height" name="charts" swliveconnect="true"
-			 $transparent_opt type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
-		</embed>
 </object>

  -- taru 2007-01-12 (金) 00:56:40

  • 別ページのテーブルを読み込んだ際、XML表記が効かなくなるようなのですが… -- kaims? 2009-07-07 (火) 16:19:44
  • 確認しました。ご報告ありがとうございます。取り急ぎ修正してみましたのでご確認お願いします。->filecharts.inc.php.1.4.1.zip.tgz -- taru 2009-07-08 (水) 12:08:51
  • 解凍後のファイルの日付が20071115で、中身も特に変化が無いようでした…ご確認いただけますか? すみません… -- kaims? 2009-07-09 (木) 09:54:34
  • 間違えていました。すみません (^^; 。再度同名にてアップしなおしました。 -- taru 2009-07-09 (木) 10:11:26
  • 無事表示されました。素早いご対応、ありがとうございました(^^ -- kaims? 2009-07-09 (木) 13:43:37

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS