テンプレート変数(入力タイプ:RichText)について  【解決済み】

質問全般・改善要望
返信する
storec
メンバー
メンバー
記事: 21
登録日時: 2010年12月17日(金) 12:10

テンプレート変数(入力タイプ:RichText)について

投稿記事 by storec »

入力する際に「改行」も反映させたいエリアがあり、
テンプレート変数を作成し、(入力タイプ:RichText)に設定しました。
そうすると、そのテンプレート変数に関連づけられたリソースの編集画面ではきちんと「改行」が反映するのですが、
いざ、サイトを閲覧すると「改行」は反映されていません。
対処法などございますでしょうか。 :oops:

--------------------------------
環境
バージョン【1.0.4J-r5】
サーバ【heteml】
--------------------------------
アバター
kmikage
管理人
記事: 396
登録日時: 2009年9月01日(火) 20:21

Re: テンプレート変数(入力タイプ:RichText)について

投稿記事 by kmikage »

改行にbrタグは付けていますか?
RichTextの場合、brタグは自動では付かなかった気がします。
同人サークル にくじゃがソフトウェア
http://www.nikujaga.info/

ブログはじめました。
http://kmikage.nikujaga.info/
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: テンプレート変数(入力タイプ:RichText)について

投稿記事 by soushi »

soushiです。

テンプレート変数の入力タイプをRichTextにした場合、リソースの入力画面ではTinyMCEが立ち上がってませんでしょうか。
その場合は自動的に改行(もしくはPタグ)が付加されるので、改行は気にしなくても入っていると思います。
ただ、入力タイプをTextareaにした場合は、確かに改行していても<br />タグが付くわけではないので改行は行われません。
もし改行が入らない現象が「<br />タグがない」と言う現象でしたら以下の回避策があります。

MODx1.0.5でしたらカスタムウィジェットを使うと改行(\n)に<br />を付けることができます。

testという名前のテンプレート変数を作成した場合、テンプレート変数設定画面のウィジェット(出力フィルタ)をCustom Widgetにして、Outputに次のコードを入力します。

コード: 全て選択

@EVAL $v=$modx->getTemplateVar('test');return str_replace("\n","<br />\n",$v['value']);
MODx1.0.5未満の場合、スニペットを間に挟むことで同じ事ができます。
testというテンプレート変数を作り、同様にtestというスニペットを作成します。
スニペットの中身は次のような感じです。

コード: 全て選択

<?php
$v=$modx->getTemplateVar('test');
return str_replace("\n","<br />\n",$v['value']);
?>
[\code]

尚、リソースのコンテンツにはテンプレート変数[*test*]の代わりにスニペット[!test!]を記述します。
storec
メンバー
メンバー
記事: 21
登録日時: 2010年12月17日(金) 12:10

Re: テンプレート変数(入力タイプ:RichText)について  【解決済み】

投稿記事 by storec »

テンプレート変数の入力タイプをRichTextにした場合、リソースの入力画面ではTinyMCEが立ち上がってませんでしょうか。

RichTextにしてもTinyMCEが立ち上がらないので下記方法で試してみました。
--------------------------------------------------------------------------------------------------------
MODx1.0.5未満の場合、スニペットを間に挟むことで同じ事ができます。
testというテンプレート変数を作り、同様にtestというスニペットを作成します。
スニペットの中身は次のような感じです。

コード: 全て選択

<?php
$v=$modx->getTemplateVar('test');
return str_replace("\n","<br />\n",$v['value']);
?>
[\code]

尚、リソースのコンテンツにはテンプレート変数[*test*]の代わりにスニペット[!test!]を記述します。
--------------------------------------------------------------------------------------------------------

結果、見事改行を実現できました!どうもありがとうございました!!
返信する