質問箱/5251

カテゴリデザイン・CSS・スキン
サマリリストのスタイルを分岐させたい
バージョン1.5.1
投稿者tom
状態完了
投稿日2017-01-08 (日) 15:51:23

質問

pcommentで入力したものは別のスタイルシートを付けたいと考えています。
頭が = から始まるものは class="list1" ではなく class="hoge1" と付ける、または = から始まるものにだけ class="list1" と付けたいのですが何処を変えたら良いのでしょうか?
= はリストになるよう convert_html.php に追加し - と同じく ul class="list1" と変換されるようになりましたがそこから先が分かりません。

回答

  • 整形ルール改造ねた: 質問箱/5026, 質問箱/4496, 質問箱/4335, 質問箱/4213, etc... -- 2017-01-09 (月) 00:08:20
  • pcommentプラグイン側で抽出表示する時だけタグ構成変更ではなく、新規ルールを追加ですか。クラス名は違うかもしれませんが
    class PcmtList extends ListContainer
    {
    	function PcmtList(& $root, $text)
    	{
    		parent::ListContainer('ul', 'li', '=', $text);
    	}
    }
    のようなクラスを追加した、という認識でよろしいでしょうか?もしそうであるならば、質問箱/5246のように継承元の親を探して処理構成を確認していく必要があります。 -- 2017-01-09 (月) 00:08:20
    • 上記の場合なら、extends の右側に記されているListContainer クラスを調べていくと、function toString() が質問箱5/246と同じく出力内容の生成を担当、そこでスタイル属性などを渡している$this->style に値を割り当てているのが自身を親タグ(の担当クラス)に割り当てたりしているらしいfunction setParent(& $parent) の最後の部分、という事がなんとなくわかる…かもしれません。 -- 2017-01-09 (月) 00:08:20
    • この場合の答えに近い事を書いてしまうなら、継承先のクラス(上記のならばPcmtList)で、function setParent(& $parent) を定義してparent::setParent($parent); の実行で親のルールで$this->style まで設定してもらった後に$this->style を書き換えてしまう、function toString() を定義してparent::toString(); の実行で親クラスと同じ出力内容が返ってくる前に$this->style を書き換えてしまう、などといった方法があります。ただし、確定した後の内容に対してclass="list2" -> class="hoge2" などの置き換えをするという方法は、関係のない子要素の本文すらも置き換えてしまう恐れがあるので、避けた方が無難でしょう。 -- 2017-01-09 (月) 00:08:20
      • はい、その認識で間違いありません。
        教えていただいたヒントや質問箱/5246の分岐を元に convert_html.php を書き換えたところスタイルを分けることが出来ました。ありがとうございます。 -- tom 2017-01-09 (月) 22:24:54
      • 296行目辺り
         			function ListContainer($tag, $tag2, $head, $text)
         			{
         			parent::Element();
         			(中略)
        +			$this->head = $head;
      • 327行目辺り
         			parent::setParent($parent);
         			(中略)
        -			$this->style = sprintf($_list_pad_str, $this->level, $margin, $margin); 
        +			$this->style = ($this->head == '=') ? ' class="hoge'.$this->level.'"' : ' class="list'.$this->level.'"';


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

PukiWiki 1.5.2+ © 2001-2018 PukiWiki Development Team. Powered by PHP 5.6.38-0+deb8u1. HTML convert time: 0.831 sec.

OSDN