ページ 11

MODx 1.0.8J のテンプレート変数について

Posted: 2013年2月04日(月) 17:35
by kks
-----
利用のサーバ : ローカルXAMPP ver. 1.7.1
Webサーバのバージョン : Apache 2.2.11
PHPのバージョン : 5.2.9
データベースのバージョン : MySQL 5.1.33
MODXのバージョン : 1.0.8J
ブラウザ :fierfox 18.0.1
-----

MODx 1.0.8J のテンプレート変数ですが、皆様の環境でウィジェットを利用した値の取得は上手くいっていますでしょうか。
1.0.7J でテンプレート変数関連に不具合があったようですが、それとは別に MODx 1.0.8J (新規インストール)にもテンプレート変数周り(ウィジェット出力)に問題があるように思うのですがいかがでしょう。

例 )
テンプレート変数 「test」 を作成
タイプを「チェックボックス」など複数値が取れる状態にする
ウィジェットを「Delimiter List」、デリミタを「,」(カンマ)

対応するテンプレート下のドキュメントで複数値を選択
テンプレート内などから単純に [*test*] とコールして値を出力

このような状態だと、通常カンマ切りになって値が取れるはずですが、私の環境で試した限りではカンマ切りにならず、上手くフォーマットされていないようです。ソースを追いかけて「manager/includes/tmplvars.format.inc.php」を見てみたのですが、ざっと見た限りでは最初の switch 文で値が先に錬成されてしまうのが問題のような気がします。

値の取得自体は色々あるので、方法を変えれば特に問題にはならないと言えばそうなのですが、デフォルトの状態でフォーマット取得した場合は上手く取れないのは多少混乱するのではないかと思います。チェックボックスを「Delimiter List」で使うこと前提ならば、最初のswitchの構成を変えてチェックボックスだけ処理を潜らせないなどすれば取れるは取れるのですが、別の設定で取得したりした場合はそれなりに問題かもしれません(試してませんが・・・)。

皆さんの環境ではいかがでしょうか。
よろしくお願いいたします。

Re: MODx 1.0.8J のテンプレート変数について

Posted: 2013年2月04日(月) 18:29
by yama
区切り文字がない連結された状態だと値として使いにくいはずなので、おそらくこの種の使い方をしているユーザは直近のバージョンでは少ないのだと思います。
tmplvars.format.inc.zip
(3.53 KiB) ダウンロード数: 460 回
修正パッチを作りましたので、試していただけますでしょうか。

Re: MODx 1.0.8J のテンプレート変数について

Posted: 2013年2月04日(月) 19:39
by kks
yama様

お世話になります。バッチリ動きました。
yama さんが書きました:区切り文字がない連結された状態だと値として使いにくいはずなので、おそらくこの種の使い方をしているユーザは直近のバージョンでは少ないのだと思います。
そうですか・・・確かに入力や取得の仕方は色々あるので、もっと直接的な方法を使えば確実なのでしょうが、複数値を持つテンプレート変数をPHxモディファイアから処理したり、ケースによってたまに利用するので、大変助かります。ありがとうございました。