Lua言語はとても軽量なスクリプト言語です。
javascriptと文法の構造が似ているため、入りやすいのも特徴です。
しかも、他の言語との連携が取りやすいので、C言語などのコンパイラ言語に組み込めば、
処理時間がよほど厳密に規定されていない限り、大抵の処理をスクリプト言語に
置き換えることができ、開発効率が格段に上がります。
そこで、ちょっとしたアイデアがあり、PHPと連携を取ってみることにしました。
(スクリプト言語であるPHPと連携を取る必要があるかどうかの疑問は後回し)
1.PHPに、PECL_Genをインストールし、pecl-genコマンドが使えるようにします。
2.spec.xmlを作成し、pecl-genコマンドでPECL用コード一式を自動生成します。
3.phpize, configure, makeなど決められたとおりに実行し、コンパイルします。
4.make instalでPECLフォルダにインストールされます。
簡単なコードで、PHPからLuaを実行できるようになりました。
何に使うかは、また次回。
admin プログラム小技 lua, php
dojoのtabContainerは実装は簡単ですが、子供となるContentPaneの中にiframeなどがあると、
表示がうまくいかないことがあります。
表示されているContentPaneでないとうまく動作しないことが原因です。
よって複雑なページをタブ化する場合以下のようにするとうまく動作します。
1.タブコンテナにselectChildイベントハンドラをコネクト
2.ContentPaneを作るときにはcontentは空にしてタブコンテナに追加
3.selectChildイベントハンドラが呼ばれたときに、表示するContentPaneのcontentを設定(この中にiframeが含まれる)
これで外部のdojoページでもタブ化できます。
参考)タブコンテナにselectChildイベントハンドラを設定する方法
<div dojoType=”dijit.layout.TabContainer” id=”tab”>
<script type=”dojo/connect” event=”selectChild” args=”contentPane”>
var url = 適当なURL;
if(contentPane.contentLoaded != true) {
var contents = ‘<iframe src=”‘+url+’” frameborder=”0″ style=”width:100%; height:100%;” scrolling=”no”/>’;
contentPane.setContent(contents);
contentPane.setAttribute(“contentLoaded”, true);
}
</script>
</div>
admin dojo, プログラム小技 dojo, php