質問箱/3510

カテゴリ
サマリ表組みの枠の色を変更することはできませんでしょうか
バージョン1.4.7
投稿者summer?
状態完了
投稿日2006-10-08 (日) 18:50:18

質問

背景色の枠の表組みを作成して配置したい場合と、普通の色の枠の表組みを作成して配置したい場合があるのですが。
色はCOLORで指定できますが、枠の色を変更する方法がありましたら教えていただけないでしょうか。 質問箱/2251の方法だと1色しか使えませんので。 どうぞよろしくお願い致します。

回答

ありがとうございます

パッチまで作っていただいて、本当に本当にありがとうございます。 標準機能ではできないのですね。

早速、試してみたのですが出力されるHTMLが

table class="style_table" から変化しません。 何度見直しても、分からないのですが、アドバイスいただけませんでしょうか。 どうぞよろしくお願いします。

cssは例題をそのまま使用しました
(convert_htm.php)
// '|'-separated table
function & Factory_Table(& $root, $text)
{
//KM	if (! preg_match('/^\|(.+)\|([hHfFcC]?)$/', $text, $out)) {
	if (! preg_match('/^\|(.+)\|([hHfFcCsS]?)$/', $text, $out)) { //KM ADD
		return Factory_Inline($text);
	} else {
		return new Table($out);
	}
}
class Table extends Element
{
	var $type;
	var $types;
	var $col; // number of column
	var $style; //KM ADD

	function Table($out)
	{
		parent::Element();
		$cells       = explode('|', $out[1]);
		$this->col   = count($cells);
		$this->type  = strtolower($out[2]);
		$this->types = array($this->type);
		$is_template = ($this->type == 'c');
		$row = array();
//KM		foreach ($cells as $cell)
//KM			$row[] = & new TableCell($cell, $is_template);
		$this->style = 'style_table'; 
		if($this->type == 's') {			
			$this->style = htmlspecialchars(array_shift($cells));
		} else {					
			foreach ($cells as $cell)		
				$row[] = & new TableCell($cell, $is_template);
		}						
		$this->elements[] = $row;
	}
	function canContain(& $obj)
	{
		return is_a($obj, 'Table') && ($obj->col == $this->col);
	}
	function & insert(& $obj)
	{
		$this->elements[] = $obj->elements[0];
		$this->types[]    = $obj->type;
		return $this;
	}
	function toString()
	{
		static $parts = array('h'=>'thead', 'f'=>'tfoot', ''=>'tbody');
		// Set rowspan (from bottom, to top)
		for ($ncol = 0; $ncol < $this->col; $ncol++) {
			$rowspan = 1;
			foreach (array_reverse(array_keys($this->elements)) as $nrow) {
				$row = & $this->elements[$nrow];
				if ($row[$ncol]->rowspan == 0) {
					++$rowspan;
					continue;
				}
				$row[$ncol]->rowspan = $rowspan;
				// Inherits row type
				while (--$rowspan)
					$this->types[$nrow + $rowspan] = $this->types[$nrow];
				$rowspan = 1;
			}
		}
		// Set colspan and style
		$stylerow = NULL;
		foreach (array_keys($this->elements) as $nrow) {
			$row = & $this->elements[$nrow];
			if ($this->types[$nrow] == 'c')
				$stylerow = & $row;
			$colspan = 1;
			foreach (array_keys($row) as $ncol) {
				if ($row[$ncol]->colspan == 0) {
					++$colspan;
					continue;
				}
				$row[$ncol]->colspan = $colspan;
				if ($stylerow !== NULL) {
					$row[$ncol]->setStyle($stylerow[$ncol]->style);
					// Inherits column style
					while (--$colspan)
						$row[$ncol - $colspan]->setStyle($stylerow[$ncol]->style);
				}
				$colspan = 1;
			}
		}
		// toString
		$string = '';
		foreach ($parts as $type => $part)
		{
			$part_string = '';
			foreach (array_keys($this->elements) as $nrow) {
				if ($this->types[$nrow] != $type)
					continue;
				$row        = & $this->elements[$nrow];
				$row_string = '';
				foreach (array_keys($row) as $ncol)
					$row_string .= $row[$ncol]->toString();
				$part_string .= $this->wrap($row_string, 'tr');
			}
			$string .= $this->wrap($part_string, $part);
		}
//KM		$string = $this->wrap($string, 'table', ' class="style_table" cellspacing="1" border="0"');
//KM ADD
		$string = $this->wrap($string, 'table', ' class="' .
			htmlspecialchars($this->style) . '" cellspacing="1" border="0"');
		return $this->wrap($string, 'div', ' class="ie5"');
	}
}
  • すみません、wikiの書式例が間違っていました。パッチは合っていると思いますので、カラムを揃えてみてください。 -- teanan 2006-10-11 (水) 03:09:11
    |style_table2|||s
    |hoge1|hoge2|hoge3|
    |A|B|B|
  • 出来ました。本当にありがとうございました。&smile; -- summer? 2006-10-11 (水) 19:56:47
  • 色々、使ってみました。 パッチありがとうございました。1つお聞きしたいのですが。SIZEが動作しません。簡単な修正で動くようにならないものでしょうか。 やりたいことは以下のようなことなのですが。
    |style_table2:SIZE(16):200|SIZE(16):200|SIZE(16):300|s
    |hoge1|hoge2|hoge3|
    |A|B|B|
    作っていただき、本当にあつかましいのですが。これができると、何でも配置可能になりますので。アドバイスいただけませんでしょうか。 -- summer? 2006-10-12 (木) 09:10:30
  • 装飾子 s では、スタイルの指定のみにしてください。その他は、装飾子 c で指定できると思います。 -- teanan 2006-10-12 (木) 12:44:02
    |style_table2|||s
    |SIZE(16):200|SIZE(16):200|SIZE(16):300|c
    |hoge1|hoge2|hoge3|
    |A|B|B|
  • なるほど、そういうことだったのですね。大変ありがとうございました。 -- summer? 2006-10-12 (木) 12:58:01

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-11-22 (火) 20:28:43
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.522 sec.

OSDN