質問箱/2017

カテゴリ
サマリページ背景色を設定したい
バージョン1.4.2
投稿者ポリー?
状態完了
投稿日2004-02-03 (TUE) 12:07:50

質問

例えば、ページを分類する際に 背景色で分かりやすく分類したい場合 一括で背景色を指定することは可能でしょうか? 単語の背景色(改行しない)はできたのですが 改行のある文章だと設定できませんでした。

回答

  • reimy 2004-02-03 (TUE) 13:07:01

    ページ名で分類するのであれば、スキンの中でサブのcssファイルの指定をページ名によって分岐させれば可能です。

    <link rel="stylesheet" href="./skin/default.ja.css" type="text/css" media="screen" charset="Shift_JIS" />
    <?php if (ereg("~", $vars["page"]) == FALSE) { ?>
     <link rel="stylesheet" href="./skin/color1.css" type="text/css" media="screen" charset="Shift_JIS" title="color1" />
    <?php } else { ?>
     <link rel="stylesheet" href="./skin/color2.css" type="text/css" media="screen" charset="Shift_JIS" title="color2" />
    <?php } ?>

    「~」の部分は正規表現で指定。ここでは例として2つに分岐してますが、case文を使えばいくつにも分岐できます。

  • ポリー? 2004-02-03 (TUE) 14:46:00

    早速のお返事ありがとうございます。使い方として、スタイルシートではなく、ページの作成(編集)時に背景色をつけて分類したいのですが、可能でしょうか?

  • ポリー? 2004-02-06 (FRI) 13:51:08

    登録時や凍結時に、背景色で分類してユーザーに分かりやすくしたいと思っております。

  • reimy 2004-02-06 (FRI) 14:36:28

    ページが凍結されているかどうかは$is_freezeの値で判定できますので、条件分岐の判定に$is_freezeを使えばCSSを切り替えることが可能です。

    <link rel="stylesheet" href="./skin/default.ja.css" type="text/css" media="screen" charset="Shift_JIS" />
    <?php if ($is_freeze) { ?>
     <link rel="stylesheet" href="./skin/color1.css" type="text/css" media="screen" charset="Shift_JIS" title="color1" />
    <?php } else { ?>
     <link rel="stylesheet" href="./skin/color2.css" type="text/css" media="screen" charset="Shift_JIS" title="color2" />
    <?php } ?>

    color1.cssには凍結ページの背景色を指定したCSS、color2.cssには非凍結ページの背景色を指定したCSSを。

  • ポリー? 2004-02-09 (MON) 10:49:42

    reimyさんどうもありがとうございます。解決しました。

  • PukiWiki-1.4.7ではできないようですけれど。。。どうすればいいのでしょうか?
    ページの色分類機能は魅力的ですね。−−他のCMSではないPukiWikiならではの機能のような気がします。
    私のようなエンドユーザでも気軽に使えるpluginの形であれば助かるのですが。。 -- ytomi? 2007-03-06 (火) 10:34:57
  • 私もプラグインの形で欲しいに一票 -- 羊飼? 2008-02-23 (土) 02:57:20
  • PHP初心者です。バージョン:1.4.7
    ページ名で3つに分類させたいのですが、IF文ではなくCASE文での例を記載いただけると助かります。よろしくお願いします。 -- 中嶋? 2010-08-30 (月) 16:56:14
    • ヒント: switch - PHP Manual -- 2010-08-30 (月) 19:40:58
    • すみません。ヒントを見ても解りませんでした(汗)。下記は、私が記載したコードです。エラーが返されてしまいました。
      下記のline 105は、default:です。
      Parse error: syntax error, unexpected T_DEFAULT in pukiwiki.skin.php on line 105
      <?php
      switch($vars['page']){
      case 'xx';
      }?>
      <link rel="stylesheet" type="text/css" href="common/css/skin/xx_style.css" media="screen" charset="Shift_JIS" title="color-xx" />
      <?php{
      case 'yy';
      }?>
      <link rel="stylesheet" type="text/css" href="common/css/skin/yy_style.css" media="screen" charset="Shift_JIS" title="color-yy" />
      <?php
      default:
      ?>
      <link rel="stylesheet" type="text/css" href="common/css/import.css" media="screen" charset="Shift_JIS" />

      -- 中嶋 2010-08-31 (火) 17:08:26

    • そのソースを同じ意味で置き換えると
      <?php
      switch($vars['page']){
      case 'xx';
      }
      echo '<link rel="stylesheet" type="text/css" href="common/css/skin/xx_style.css" media="screen" charset="Shift_JIS" title="color-xx" />';
      {
      case 'yy';
      }
      echo '<link rel="stylesheet" type="text/css" href="common/css/skin/yy_style.css" media="screen" charset="Shift_JIS" title="color-yy" />';
      default:
      echo '<link rel="stylesheet" type="text/css" href="common/css/import.css" media="screen" charset="Shift_JIS" />';
      ?>
      になってしまいますよ。({と}の数や位置がおかしいので、switchの中にcase 'yy'とdefault がいない状態)
      <?php
      switch($vars['page']){
      case 'xx':
      ?>
      <link rel="stylesheet" type="text/css" href="common/css/skin/xx_style.css" media="screen" charset="Shift_JIS" title="color-xx" />
      <?php
      	break;
      case 'yy':
      ?>
      <link rel="stylesheet" type="text/css" href="common/css/skin/yy_style.css" media="screen" charset="Shift_JIS" title="color-yy" />
      <?php
      	break;
      default:
      ?>
      <link rel="stylesheet" type="text/css" href="common/css/import.css" media="screen" charset="Shift_JIS" />
      <?php
      }
      ?>
      とすれば、とりあえずは動くはず。 -- 2010-08-31 (火) 18:59:38
    • ありがとうございます。動きました。しかし、希望する動作を行なってはくれず。。。仕方がないので、if文を使用して何とか解決できました。
      <link rel="stylesheet" href="common/css/import.css" type="text/css" media="screen" charset="Shift_JIS" />
      <?php 
      if (ereg("XX", $vars["page"]) == TRUE) { 
      ?>
       <link rel="stylesheet" href="common/css/skin/XX_style.css" type="text/css" media="screen" charset="Shift_JIS" title="color-XX" />
      <?php
      } elseif (ereg("YY", $vars["page"]) == TRUE) { 
      ?>
       <link rel="stylesheet" href="common/css/skin/YY_style.css" type="text/css" media="screen" charset="Shift_JIS" title="color-YY" />
      <?php
      } else {
      ?>
       <link rel="stylesheet" href="common/css/import.css" type="text/css" media="screen" charset="Shift_JIS" title="color-default" />
      <?php
      }
      ?>

      もし、ご面倒でなければ、上記をswitch文で記述した場合どうなるか、ご教授いただけると嬉しいです。 -- 中嶋? 2010-09-01 (水) 10:33:45
    • その条件では、switch構文に変換できません。switch構文には、switchを宣言する時に指定した文字列を固定基準として、caseで指定した文字列と一致するかを判定して分岐させる機能しかありません。(「~が"XX"であるか」という比較判定はできても、「~の中に"XX"が含まれているか」というような判定には使えません)
      条件を限定するなら、switch構文を使える場合があるかもしれませんが・・・。例えば、ページ名に/が出てくるまで(このページなら「続・質問箱」)を先に取り出しておいて、「最初の階層が"XX"ならば」という判定にswitch構文を使う場合。 -- 2010-09-01 (水) 18:46:05
    • ご回答頂き、ありがとうございます。一番上のコメントに「case文を使えばいくつにも分岐できます」とあったので、できるものと思っていました。。。とりあえず、IF文で目的は果たせました。本当にありがとうございました。 -- 中嶋? 2010-09-02 (木) 13:05:37

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-02 (木) 18:23:49
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.373 sec.

OSDN