**[[質問箱4/46]] [#a9d9ce90]
#author("2018-03-11T19:20:21+09:00;2010-04-15T17:36:19+09:00","","")
**[[質問箱/4046]] [#a9d9ce90]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|tracker_listで表組み表示にしない場合の改行の扱いについて|
|~バージョン|1.4.6|
|~投稿者|okd|
|~状態|保留|
|~投稿日|&new{2007-04-09 (月) 15:26:30};|
***質問 [#z49f2fe3]
--[[Q. tracker の textareaに記載したメッセージを、改行つきでtracker_listに出力するには?>Q&A/プラグイン/trackerプラグイン#u8fd0fe0]]

以上を参考にして、
textarea内容を改行つきでtracker_listで表示させようとしているのですが(もちろん、 pukiwiki.ini.phpの$line_breakを1に設定済みです。)
tracker_listの内容を以下のようなリスト表組みではなく、
 |[title]|[Summary]|[_date]|h
 |[title]|[Summary]|[_date]|
単なるWhat's newのような扱いで
 -[title]([_date])
 --[Summary]
と箇条書きで表示させている場合、改行つきで表示されません。
&br;
[summary]がtextareaに該当します。
~
できればtextarea内の改行にあわせて箇条書きにしたいので、現在はtextarea内の2行目以降に「--」を記入してらもう形で運用していて、pageには改行と箇条書きが反映されているのですが、listには改行も箇条書きも反映されておらず、「~ます。--二行目は~」というような表示になる状態です。何か方法ありますでしょうか。

***回答 [#m9fe600b]
- &br;(半角で)は駄目かな? --  &new{2007-04-09 (月) 16:58:29};
- &br;も試してみましたが、改行はされますが冒頭の「--」が箇条書きに変換されず、そのまま「--」と表示されてしまいます。 -- [[okd]] &new{2007-04-10 (火) 09:04:26};
- 改行をそのままlistでも改行として表示できればよい、てことでしょうか?&br;やっつけ仕事で応用性がなくなるんですが、tracker.inc.phpの352行を変更すればいけるような気がします。外していたらごめんなさい。 --  &new{2007-05-16 (水) 23:38:22};
 function format_cell($str)
 {
 -	$str = preg_replace('/[\r\n]+/','',$str);
 +	$str = preg_replace('/[\r\n]+/','&br;',$str);
  	if (!empty($this->values[2]) and strlen($str) > ($this->values[2] + 3))
- こっちの方法はどうでしょう。
>
 class Tracker_list
 {
 (中略)
	function replace_item($arr)
	{
		$params = explode(',',$arr[1]);
		$name = array_shift($params);
		if ($name == '')
		{
			$str = '';
		}
		else if (array_key_exists($name,$this->items))
		{
			$str = $this->items[$name];
			if (array_key_exists($name,$this->fields))
			{
 -				$str = $this->fields[$name]->format_cell($str);
 +				if($this->pipe or !(strcasecmp(get_class($this->fields[$name]), 'tracker_field_textarea') === 0) ) {
 +					$str = $this->fields[$name]->format_cell($str);
 +				}
			}
		}
		else
これなら下の$this->pipe で設定したパターンが、TRUE ならtextarea が1行表示に変換され、
FALSE ならtextarea は変換されずそのまま表示されます。~
(textarea 以外は、$this->pipe がどちらでもこれまでと同じ処理)
 class Tracker_list
 {
 (中略)
 	function toString($limit=NULL)
	{
 (中略)
				$this->pipe = ($line{0} == '|' or $line{0} == ':');
				$source .= preg_replace_callback('/\[([^\[\]]+)\]/',array(&$this,'replace_item'),$line);
			}
		}
		return convert_html($source);
	}
 }
デフォルトでは「ベースページ名/list」 ページで、表組みと定義リストの行がTRUE になります。~
$this->pipe のパターンを増やした時にどうなるか、まではテストしてません。~
<
こちらの方法だとプラグイン1つで、表組みのtracker_list と共存できるようになります。 --  &new{2007-06-04 (月) 14:27:40};
- [[dev:BugTrack2/243#fbe937f9]] --  &new{2007-09-20 (木) 11:27:22};
-- [[dev:BugTrack2/275#fbe937f9]] --  &new{2009-09-21 (月) 15:05:36};

//#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.033 sec.

OSDN