kilica's blog articles | XOOPS Cube日本サイト http://xoopscube.jp/user/11425/blogs kilica's recent published blog articles [XCL22] 速度改善 http://d.hatena.ne.jp/kilica/20100306/1267887806 nobu さんが検討してくれたチューニングを取り込みました(^ ^)。 これは結構効いてるかも。

nobu さんが検討してくれたチューニングを取り込みました(^ ^)。

これは結構効いてるかも。

]]>
kilica 2010-03-07T00:03+09:00 XCL22
[XCL22] meta要素設定 http://d.hatena.ne.jp/kilica/20100306/1267887805 OSC で suin さんに聞いたアイディアを元に、 XCube_Root::getSingleton()->mContext->getAttribute('headerScript')->setMeta('keywords', 'xoops,development,module') で、html のメタ要素(この例では "keywords")...

OSC で suin さんに聞いたアイディアを元に、

XCube_Root::getSingleton()->mContext->getAttribute('headerScript')->setMeta('keywords', 'xoops,development,module')

で、html のメタ要素(この例では "keywords")を設定できるようにしました。

用途としては、ページによって robots の設定を変えたり(RSS拾って表示しているページとか)、rating 変えたりとかでしょうか。

]]>
kilica 2010-03-07T00:03+09:00 XCL22
[module] XCCK 日付項目改善など http://d.hatena.ne.jp/kilica/20100303/1267629081 XCCK も XCL2.2 で動作するよう修正。 あと、実は放ってあったことに気づいた日付項目の編集・表示をちゃんと動くよう修正。

XCCK も XCL2.2 で動作するよう修正。

あと、実は放ってあったことに気づいた日付項目の編集・表示をちゃんと動くよう修正。

]]>
kilica 2010-03-04T00:11+09:00 module
[module] Xq テンプレート改善など http://d.hatena.ne.jp/kilica/20100303/1267628618 久しぶりに Xq を少し修正。最新の XCL 2.2 で動作するようにテンプレートを修正。 また、一覧ページのテンプレートを修正。 参考にしようと、Q&A のウェブサービスで絞ったら100以...

久しぶりに Xq を少し修正。最新の XCL 2.2 で動作するようにテンプレートを修正。

また、一覧ページのテンプレートを修正。

参考にしようと、Q&A のウェブサービスで絞ったら100以上あった(^ ^;。

]]>
kilica 2010-03-04T00:03+09:00 module
[一般] PHPのデザインパタン http://d.hatena.ne.jp/kilica/20100302/1267539469 書籍「PHPによるデザインパターン入門」の原稿テキストを公開します ちょうどこの本で勉強中でした。良い本だったのに。

書籍「PHPによるデザインパターン入門」の原稿テキストを公開します

ちょうどこの本で勉強中でした。良い本だったのに。

]]>
kilica 2010-03-02T23:17+09:00 一般
[xoops][一般] OSC2010 Tokyo/Spring http://d.hatena.ne.jp/kilica/20100228/1267355036 OSC 2010 Tokyo/Spring に行ってきました。でもって XCL22 の新機能についての発表をしてまいりました。 プレゼン XOOPS Cube Legacy 2.2 on Prezi 配布資料 gusagi さんがまとめてくれた当日のサマ...

OSC 2010 Tokyo/Spring に行ってきました。でもって XCL22 の新機能についての発表をしてまいりました。

プレゼン

XOOPS Cube Legacy 2.2 on Prezi


配布資料

gusagi さんがまとめてくれた当日のサマリ

また、(まだ日本にいる)minahitoさん、gusagi さん、suin さん、そして「たまたま?」日本に来ていた XCL2.2 Lead Developer, Gigamaster さんらといろいろお話しました。いや、たまには出かけたほうが良いよなと参加したのですが、大正解。実に楽しい、充実した一日でした。

Gigamaster さんには初めてお会いしたのですが、話に聞く以上のナイスガイ。ハンサムで、頭も良く、人格者という完璧超人。しかも膝を壊すまではサッカー選手としていくつかのクラブを渡り歩いていたんだそうな。OSC終了後、赤坂のホテルニューオータニで聞いた Gigamaster さんの素晴らしいお話は minahito さんがまとめています。

でもって久々に英語が半分位を占める一日を過ごしました。英語ネイティブな方ではないことと、我々日本人向けにゆっくりしゃべってくれたので、なんとか半分くらいは理解できました。しかし帰るときは英語脳になっていて、守衛の人に英語で挨拶しそうになった。

そして、今回の最大の収穫と言えるのは、Suin さんを XCL 開発にお誘いして快諾いただいたことでしょう。

XOOPS Cube 開発の Cheat-Sheet の配布, jQuery や デバグの preload など、精力的に活動されています。

XOOPS Cube Legacy が今後また大きく発展していくことは間違いありません。乞ご期待!

]]>
kilica 2010-02-28T20:03+09:00 xoops 一般
[XCL22] xoops_dhtmltarea http://d.hatena.ne.jp/kilica/20100222/1266842750 Smarty プラグインの xoops_dhtmltarea により、フォームのテキストエリアにBBコードのエディタが使えるようになります。 しかしこのエディタがどうにも使いづらく、XCL2.2では Delegate を使...

Smarty プラグインの xoops_dhtmltarea により、フォームのテキストエリアにBBコードのエディタが使えるようになります。

しかしこのエディタがどうにも使いづらく、XCL2.2では Delegate を使って簡単に差し替えられるようにしました。

ところで XCL2.2 には FCKエディタが(extrasにですが)付いています。

そこで、おなじく xoops_dhtmltarea で editor パラメタを指定することで BBコードの代わりに FCK エディタを使えるようにしました。デフォルトではFCKエディタですが、やはり Delegate で他のエディタに切り替え可能です。

たとえば、最初はFCKエディタを使っていたけど、ある日その後継の CKエディタに切り替えたくなった、というとき、テンプレートをいじることなく preload ファイルを置くことでガラッと切り替えることができます。

あるいは、ユーザID(やロール)をみてエディタを切り替える、といった preload もできるでしょう。

]]>
kilica 2010-02-22T21:45+09:00 XCL22
[XCL22][module] xtran http://d.hatena.ne.jp/kilica/20100204/1265297802 XOOPS モジュールの言語ファイル同期支援モジュールです。 モジュールを作っていて何が面倒くさいかというと、言語ファイルの整備、とりわけ、日本語以外の言語ファイルの整備です...

XOOPS モジュールの言語ファイル同期支援モジュールです。

モジュールを作っていて何が面倒くさいかというと、言語ファイルの整備、とりわけ、日本語以外の言語ファイルの整備です。

最初はいいのですが、そのうち「日本語の言語ファイルには追加したけど、英語には追加していない」言語定数がごろごろと増えてきます。そして、「どの言語定数がそろっていて、どの言語定数が足りないか」すぐにわからなくなります。

というわけで、急遽作ったのがこのモジュールです。比較したいモジュール、比較元と比較先の言語、タイプ(admin, blocks, main, modinfo)を指定すると、比較先に足りない言語定数の一覧が出てきます。

すーぱー手抜きなモジュールです。XCL2.2の言語ファイル整備のために2時間ほどで作りました。

http://xoops.trpg-labo.com/modules/wiki/?Menu/xtran

]]>
kilica 2010-02-05T00:36+09:00 XCL22 module
[XCL22][module] Leprogress http://d.hatena.ne.jp/kilica/20100131/1264945290 先日言っていた進捗管理のモジュールの解説。 セクション系やニュース系のモジュールで投稿が完了したら、 XCube_DelegateUtils::call('Legacy_Progress.AddItem' $title, $dirname, $target_name, $id); で...

先日言っていた進捗管理のモジュールの解説。

セクション系やニュース系のモジュールで投稿が完了したら、

XCube_DelegateUtils::call('Legacy_Progress.AddItem' $title, $dirname, $target_name, $id);

で、投稿した記事を Leprogress の進捗管理に載せることができます。簡単ですね。

審査が完了したら、Leprogress から、

XCube_DelegateUtils::call('Legacy_Progress.UpdateStatus' new XCube_Res($result), $dirname, $target_name, $id, $status);

を発行しますので、モジュール側でこのデリゲートに対する処理(記事のステータスを公開にする、など)を書くことで、「審査が終わったら公開」などのモジュールを作ることができます。

f:id:kilica:20100131204244g:image

また、Leprogress が扱うデリゲートは XCL2.2 で追加される legacy/class/interface/AbstractProgressDelegate.class.php の Legacy_AbstractProgressDelegate を継承しています。もし、Leprogress とは別の進捗管理を実現したい場合、このクラスを継承したデリゲートを持つ進捗管理モジュールを作成すれば、進捗管理部分だけを差し替えることができます。

]]>
kilica 2010-01-31T22:41+09:00 XCL22 module
[module] XCCK http://d.hatena.ne.jp/kilica/20100128/1264690480 ニュージーランドの Dirk Derom さんが中心になって開発を進めようとしている XCL モジュールに XCCK というのがあって、ふんふんと見ていたのですが、いつの間にか Lead Developer に祭り上げ...

ニュージーランドの Dirk Derom さんが中心になって開発を進めようとしている XCL モジュールに XCCK というのがあって、ふんふんと見ていたのですが、いつの間にか Lead Developer に祭り上げられていました。どうしてこうなった。

CosmoDB の後継モジュールにあたり、フィールドを好きに定義できる「汎用データベースモジュール」のひとつになります。

細かい仕様が良くわからないのでとりあえずプロトタイプを作り始めました。

主として想定しているのが学術論文の掲載のようで、数名で査読後公開、という機能が必要らしいのですが、どうもこの機能は別モジュールに切り出した方が良さそうなので、簡易ワークフローとして汎用的に使える承認モジュールもついでに作る予定です。

]]>
kilica 2010-01-28T23:54+09:00 module
[module] Q&A(Xq) モジュール http://d.hatena.ne.jp/kilica/20100111/1263223041 だいたい作りました。あとは JavaScript とテンプレート調整、言語ファイルの整備あたり。 カテゴリのデリゲートで返すのはオブジェクトがいいのか配列がいいのか、どっちかなあ。

だいたい作りました。あとは JavaScript とテンプレート調整、言語ファイルの整備あたり。

カテゴリのデリゲートで返すのはオブジェクトがいいのか配列がいいのか、どっちかなあ。

]]>
kilica 2010-01-12T00:17+09:00 module
[XCL22][module] Q&A モジュール http://d.hatena.ne.jp/kilica/20100109/1263041112 なぜか非常に問い合わせが多い CQA の後継モジュール XQ を作り始めました(ありがとうございます、wye さん m(__)m )。 XCL2.2以降に搭載予定のカテゴリモジュールの検証も兼ねています...

なぜか非常に問い合わせが多い CQA の後継モジュール XQ を作り始めました(ありがとうございます、wye さん m(__)m )。

XCL2.2以降に搭載予定のカテゴリモジュールの検証も兼ねています。そのため、XCL2.2以降、カテゴリモジュール(Lecat)必須となります。したがいまして、PHP4 サーバでは動作しません。

CQA は Cubookmarken の次に古いモジュールなので、いま見直すと恐ろしいコードになっています。

後継である XQ は、CQA の機能を概ね引き継いでいます。とはいえ、細かい仕様は覚えていませんので、デグレードとかありそうです。

とりあえずロジック部分は大体終わったので、テンプレートにとりかかっています。が、これがかなり面倒くさい。と、とりあえず CQA のコピペで乗り切ろう。

]]>
kilica 2010-01-09T21:45+09:00 XCL22 module
[Web]lingr 復活 http://d.hatena.ne.jp/kilica/20091110/1257867010 9月ごろに Lingr が復活してやったー!と思ったものの、ユーザ登録ができずに指をくわえて待っていたのですが、ひみつの(でもないけど)登録方法を見つけて早速登録しました。 そ...

9月ごろに Lingr が復活してやったー!と思ったものの、ユーザ登録ができずに指をくわえて待っていたのですが、ひみつの(でもないけど)登録方法を見つけて早速登録しました。

その記念に、lingr の更新状況を表示するモジュールを作成。

新生 lingr には標準で bot 作成機能があります。作ったボットをチャットルームに置いておくと、誰かが発言したときに特定のURLをリクエストする、という単純な仕組みです。この bot 機能を使って、Lingr での発言を XOOPS サイトで表示するというモジュールを作りました。

http://xoops.trpg-labo.com/modules/lingr/

の右サイドの「更新状況」というのがそれです。まだ最低限の機能しか実装していません(^ ^;。

発言が連続すると Protector に引っかかりますのでご注意を。

といっても、このモジュールは使う方がいるとは思えない・・・。

さて、このモジュールを作るときにひとつ引っかかった点がありました。ボットは URL をたたくときに一緒に発言者、発言内容などを JSON で送ってくれるのですが、これが $_POST に入ってきません。今まで $_POST 以外には使ったことがなかったし、あちこちの解説を見ても $_POST で取得のことしか書かれていないのでどういうことだろうと詰まっていたのですが、

file_get_contents('php://input')

で POST の生データを取得する、というのが正解でした(^ ^;。

XOOPS 用のチャットルームも作りましたので、よろしければ以下からどうぞ (^ ^)

http://lingr.com/user/signup?letmein=xoops

]]>
kilica 2009-11-11T00:30+09:00 Web
[Web] Mockingbird http://d.hatena.ne.jp/kilica/20091105/1257418767 mockingbird 百式で紹介されていたウェブサイトのモックアップ作成サービスです。ブラウザだけで手軽に作り始めることができます。使い勝手もかなり良い。 最初、flex かと思ってい...

百式で紹介されていたウェブサイトのモックアップ作成サービスです。ブラウザだけで手軽に作り始めることができます。使い勝手もかなり良い。

最初、flex かと思っていたのですが、html なんですね。Cappuccino という、javascript ベースのフレームワークを使っているようで、これ自体も面白そう、というかすげー。

]]>
kilica 2009-11-05T19:59+09:00 Web
[XCL22] PHP5.3対応 http://d.hatena.ne.jp/kilica/20091102/1257155091 PHP5.3 では parse_ini_file() がエラーを引き起こし XCL2.1 が動作しないため、XCL2.2 では settings/ を XOOPS_TRUST_PATH に移動させ、 /* */ を取り除くことになりました。 ついでに、cache, templates_c, cla...

PHP5.3 では parse_ini_file() がエラーを引き起こし XCL2.1 が動作しないため、XCL2.2 では settings/ を XOOPS_TRUST_PATH に移動させ、 /* */ を取り除くことになりました。

ついでに、cache, templates_c, class/smarty も trust_path 側へ移動。

また、deprecate を引き起こす & new も、XCL2.2 では PHP4 非対応になるので & を取り除く予定にしております。

]]>
kilica 2009-11-02T18:44+09:00 XCL22
[XCL22] jQuery http://d.hatena.ne.jp/kilica/20090912/1252721206 jQueryを扱うためのオブジェクトを$root->mContext->mAttributes にセットしておくことにしました。 一通りできましたので、svnにアップしました(Package_Legacy/branches/r2_2_00-branch/)。 簡単...

jQueryを扱うためのオブジェクトを$root->mContext->mAttributes にセットしておくことにしました。

一通りできましたので、svnにアップしました(Package_Legacy/branches/r2_2_00-branch/)。

簡単なサンプルコードは、phpBB をご覧ください。

settings/site_custom.ini [jQuery]で幾つか設定が可能です。

library=google
"local"を指定することで、サーバなどに置いたjQueryファイルを読み込んで使うことができます。その場合、jQueryファイルを置いた場所(url)を、MainUrl=http://example.com/common/jquery/jquery.js などのように指定してください。
MainVersion=1
読み込むjQueryのバージョンです。"library=google" の場合のみ関係あります。
UIVersion=1
読み込むjQueryUIのバージョンです。"library=google" の場合のみ関係あります。
usePrototype=0
prototype.js を使うかどうかを指定します。0は使用しない、1は使用するです。使用しないことを強く推奨します。
#prototypeUrl=
prototype.jsを使う場合のライブラリの場所(url)を指定します。当然、usePrototype=1の場合のみ有効です。使う場合は、頭のコメントアウト記号(#)をとってください。
#funcNamePrefix=j
prototype.jsを使う場合、jQueryの$()関数の名前を指定します。ここで指定した文字+$が、jQueryの$()関数の名前になります。例えば、"j"が指定されていれば、j$()になります。当然、usePrototype=1の場合のみ有効です。使う場合は、頭のコメントアウト記号(#)をとってください。
]]>
kilica 2009-09-12T11:06+09:00 XCL22
[XCL22] jQuery http://d.hatena.ne.jp/kilica/20090823/1251029605 相変わらず困ってる(^ ^; とりあえず、デリゲートでの登録部分だけ載せとくかなあ。 ちなみに、デリゲートでの登録は、 登録したスクリプトが、すべての画面で読み込まれてしま...

相変わらず困ってる(^ ^;

とりあえず、デリゲートでの登録部分だけ載せとくかなあ。

ちなみに、デリゲートでの登録は、

登録したスクリプトが、すべての画面で読み込まれてしまう。

というのが問題点。

本当は RenderSystem か Root 以下のどこかに持たせておきたいところなのですが。

]]>
kilica 2009-08-23T21:13+09:00 XCL22
[XCL22]タグモジュール http://d.hatena.ne.jp/kilica/20090823/1251029604 2.3以降に搭載予定のタグモジュールを作り始めました。 今後はPHP5を前提にするという方針がxoopserverさんから出ましたので、PHP5, trust_path 利用で。 ざっとデリゲート部分をコーディ...

2.3以降に搭載予定のタグモジュールを作り始めました。

今後はPHP5を前提にするという方針がxoopserverさんから出ましたので、PHP5, trust_path 利用で。

ざっとデリゲート部分をコーディング。モジュール本体での表示を考えなければ、これだけでいいかも(^ ^;

でもこれ、dirname の取得に困りますね。

]]>
kilica 2009-08-23T21:13+09:00 XCL22
[XCL22][xoops] OSC2009名古屋 http://d.hatena.ne.jp/kilica/20090823/1251029603 行って来ました。XOOPS Cube Legacy 2.2 の新機能と、今後の XCL についてしゃべってきました。 ご出席いただいた方は20人くらいかな。

行って来ました。XOOPS Cube Legacy 2.2 の新機能と、今後の XCL についてしゃべってきました。

ご出席いただいた方は20人くらいかな。

]]>
kilica 2009-08-23T21:13+09:00 XCL22 xoops
[XCL22] RSS出力 http://d.hatena.ne.jp/kilica/20090810/1249912453 > 例えば、現在、サイトのRSSを出力するモジュールとして、 とか昨日書いていましたが、昔のニュースモジュールで使われていた backend が拡張されているんですね。 しだだかった...

> 例えば、現在、サイトのRSSを出力するモジュールとして、

とか昨日書いていましたが、昔のニュースモジュールで使われていた backend が拡張されているんですね。

しだだかった。

]]>
kilica 2009-08-10T22:54+09:00 XCL22