#author("2017-01-09T22:30:04+09:00","","") **[[質問箱5/251]] [#uc23c72e] #author("2018-03-11T22:13:09+09:00;2017-01-09T22:30:04+09:00","","") **[[質問箱/5251]] [#uc23c72e] |RIGHT:70|LEFT:410|c |~カテゴリ|デザイン・CSS・スキン| |~サマリ|リストのスタイルを分岐させたい| |~バージョン|1.5.1| |~投稿者|tom| |~状態|完了| |~投稿日|&new{2017-01-08 (日) 15:51:23};| ***質問 [#n74b04b0] pcommentで入力したものは別のスタイルシートを付けたいと考えています。~ 頭が = から始まるものは class="list1" ではなく class="hoge1" と付ける、または = から始まるものにだけ class="list1" と付けたいのですが何処を変えたら良いのでしょうか?~ = はリストになるよう convert_html.php に追加し - と同じく ul class="list1" と変換されるようになりましたがそこから先が分かりません。~ ***回答 [#o1863299] - 整形ルール改造ねた: [[質問箱5/26]], [[質問箱4/496]], [[質問箱4/335]], [[質問箱4/213]], etc... -- &new{2017-01-09 (月) 00:08:20}; - 整形ルール改造ねた: [[質問箱/5026]], [[質問箱/4496]], [[質問箱/4335]], [[質問箱/4213]], etc... -- &new{2017-01-09 (月) 00:08:20}; - pcommentプラグイン側で抽出表示する時だけタグ構成変更ではなく、新規ルールを追加ですか。クラス名は違うかもしれませんが class PcmtList extends ListContainer { function PcmtList(& $root, $text) { parent::ListContainer('ul', 'li', '=', $text); } } のようなクラスを追加した、という認識でよろしいでしょうか?もしそうであるならば、[[質問箱5/246]]のように継承元の親を探して処理構成を確認していく必要があります。 -- &new{2017-01-09 (月) 00:08:20}; のようなクラスを追加した、という認識でよろしいでしょうか?もしそうであるならば、[[質問箱/5246]]のように継承元の親を探して処理構成を確認していく必要があります。 -- &new{2017-01-09 (月) 00:08:20}; -- 上記の場合なら、extends の右側に記されているListContainer クラスを調べていくと、function toString() が質問箱5/246と同じく出力内容の生成を担当、そこでスタイル属性などを渡している$this->style に値を割り当てているのが自身を親タグ(の担当クラス)に割り当てたりしているらしいfunction setParent(& $parent) の最後の部分、という事がなんとなくわかる…かもしれません。 -- &new{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" などの置き換えをするという方法は、関係のない子要素の本文すらも置き換えてしまう恐れがあるので、避けた方が無難でしょう。 -- &new{2017-01-09 (月) 00:08:20}; --- はい、その認識で間違いありません。~ 教えていただいたヒントや[[質問箱5/246]]の分岐を元に convert_html.php を書き換えたところスタイルを分けることが出来ました。ありがとうございます。 -- tom &new{2017-01-09 (月) 22:24:54}; 教えていただいたヒントや[[質問箱/5246]]の分岐を元に convert_html.php を書き換えたところスタイルを分けることが出来ました。ありがとうございます。 -- tom &new{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.'"'; #comment