こんばんは。
テンプレート変数ウィジェット(出力フィルタ)のData Gridは、ユーザーがエクセルからコピペで表組を出力できて、ユーザビリティを高める上で、有用なものだと思います。
こうした使い方(エクセルからコピペ)をする場合、textareaが空欄の場合には表そのものが出力されないことが望ましいことも多いかと思います。
実際、そうしたいなあと思いまして、
datagridのパラメータで、空の場合のメッセージを設定できますから、「 」を入れてみたりしたのですが、そもそも機能しませんし、機能したとしても大枠のtableは表示される仕様になっているようです。
この点、どのように考えれば良いのかわからないのですが、私見では、テンプレートで、
[*tv_datagridname*]
と記述して、空だったら本当に何も出力しない方が望ましいように思うのですが、いかがでしょうか?
何かしら空の場合に処理をしたい場合、
[*tv_datagridname:ifempty=`何かメッセージ`*]
のようにできますし。
で、そもそも機能しない理由としては、
/manager/includes/controls/datagrid.class.php の312行目あたり、
if($rowcount==0) $tblRows.= ・・・
において、ファイルやdb連携の場合は確認していませんが、$rowcountは、array_chunkされてる配列をカウントしていて、1が入るために空判定されないように見受けられます。
ので、284行目以降周辺の処理を見直す必要があると思います。
しかし、前述のとおり、個人的には、
/manager/includes/tmplvars.format.inc.php
(現在進められているstableでは、manager/includes/extenders/sub.document.parser.class.inc.php)
の、datagridが適用される処理で、
コード: 全て選択
case 'datagrid':
$o = '';
if($value !=''){
・
・
・
$o = $grd->render();
}
break;
今後アップデートがある際に、毎回カスタマイズするのも微妙な気がするという個人的な理由ではありますが、もしかしたら改善にもなるかもですので、ご検討いただけないでしょうか?
大した内容でもないのに、長々失礼しました。