独自の「フォーム」ブロックの作成についておしえてください

2011年4月10日 at 8:27

同梱されている「フォーム」ブロックの機能アップを試しています。

まず元々の「フォーム」、"/concrete/blocks/form"を"/blocks/form_tomoac"にコピーし、テーブル名とクラス名がぶつかるので、それぞれリネームして独立させました。

実際にインストールを試みたところ、ブロックの名前と説明文が元と同じままなので、独自の名称に変更しようとしましたが変更方法がわかりません。

ヘルプを見ますと、
controller.php に、btName, btDescreption で記述するようになっていますが、元の「フォーム」には、btName, btDescreption が見当たりません。ファイルをgrepで確認しましたがありませんでした。
どこに記述してあるんでしょうか。
わかりましたらお教えください。

まあ、とりあえずインストールでき、同じ名前のブロックが2つ登録されたように見えますが、クローンといいますかコピーされたブロックが作れましたが。

Re: 独自の「フォーム」ブロックの作成についておしえてください

2011年4月10日 at 10:55
yamanoiです。

変数で記述しても関数で記述してもよい仕様になっています。
formの場合,getBlockTypeDescription()とgetBlockTypeName()で返す値を
書き換えてみてください。

インストールしなおせば反映されると思います。
 

Re: Re: 独自の「フォーム」ブロックの作成についておしえてください

2011年4月10日 at 11:15
お答えありがとうございました。
試して見ます。

その後、いろいろ調べていて、関連でちょっとやっかいかなと思うところがありました。
きっかけは、「フォーム」という日本語がどこにあるのかと探したら、language

languages/ja_JP.UTF8/MESSAGES/messages.po にみつけました。なるほど日本語化にときに入れられたんだなとそれなりに納得。問題はその後、フォームを新規追加するときのファイル、form_setup_html.php の中をみて、わかったことをコメントで書き込んでいくと、動作がおかしくなりました。おや!?と思って削除したら動作が回復しました。

で、教えてほしいのdすが、以下の
languages/ja_JP.UTF8/MESSAGES/messages.po
なかには、
#: export/concrete/blocks/form/form_setup.html.php:99
のように最後に行番号らしきものが書いてあります。

もしかしてソースの行数、行位置が結びつけられているのでしょうか。
そうとすれば、そのへんの関連を解除するいい方法はないでしょうか。
 

Re: Re: Re: 独自の「フォーム」ブロックの作成についておしえてください

2011年4月10日 at 11:35
yamanoiです。

> languages/ja_JP.UTF8/MESSAGES/messages.po
> なかには、
> #: export/concrete/blocks/form/form_setup.html.php:99
> のように最後に行番号らしきものが書いてあります。
>
> もしかしてソースの行数、行位置が結びつけられているのでしょうか。
> そうとすれば、そのへんの関連を解除するいい方法はないでしょうか。
関係ありません。

たとえば
return t("Form"); は、
t()関数で"Form"をmessage.mo(message.poをコンパイルしたファイル)の中から
検索して、対応する日本語を返します。
よって、日本語前提で開発するのなら
rerun "フォーム";と書くのと同じです。

まずは、t()を使わないで開発するとよいのではないでしょうか。
 

Re: Re: Re: Re: 独自の「フォーム」ブロックの作成についておしえてください

2011年4月10日 at 12:04
ブロック名称はうまく変更できました。

また、コメントを入れても問題なく動作するようになりました。
コメントを漢字で入れたのですが、それがshuft_jisの文字コードだったので動作がおかしくなった気がします。たぶんUTF-8に変えたことで問題なくなった気がします。

ありがとうございました。

引き続きがんばって見ます。