navi2.inc.php

サマリ目次の順に沿って前後ページへのリンクを出力する#navi2
リビジョン0.5
対応バージョン1.4rc3
投稿者sha
投稿日2003-08-26 (TUE) 00:57:49

概要

  • 目次ページに、ページ順に並べてを記述しておく。その順に従って「前へ」「次へ」でページへのリンクが出現する。
  • dev:PHPカンファレンス」準備を受けて緊急作成。

説明

  • PHPカンファレンス/スライド例「ページ間の移動」」を受けて作成。
  • 存在しないページへのリンクは、リンクなし文字列で出力。
  • 目次ページで、あるページをコメントアウト(//)すると、見かけ上そのページがなくなったかのように振舞う。目次では見えるようにしておくなら、番号付き箇条書きでない記述方法(ただの箇条書きとか)で記載しておけばよい。
  • スタイルシート用のクラス名は、リンクありが「navi2」、リンク無しが「navi2noneリンクの有無によらず「navi2」。ただし、ブロック型の<div>については、left|center|rightに応じて、「navi2left」「navi2center」「navi2right」が用意される。
  • ここで実験しています→「sha:navi2.inc.php

使用法

  • 引数の仕様
    #navi2([<目次>],[top[:<見出し>]],[prev[:<見出し>]],[next[:<見出し>]],
           [end[:<見出し>]],[toc[:<見出し>]],[presen_on[:<見出し>]],
           [presen_off[:<見出し>]],[left|center|right])
    &navi2([<目次>|top|prev|next|end|toc|presen_on|presen_off]){<見出し>};
    &navi2([<目次>|top|prev|next|end|toc|presen_on|presen_off]);
  • 引数の意味
    top: 最初のページへ行くリンクを表示
    end: 最後のページへ行くリンクを表示
    prev: 前のページへ行くリンクを表示
    next: 次のページへ行くリンクを表示
    toc: 目次のページへ行くリンクを表示
    presen_on: プレゼンモードON(PHPで$vars['presentation']=='on')
    (./?cmd=read&presentation=on&page=...)
    presen_off: プレゼンモードOFF
    <見出し>: リンクとして表示される文字列。省略時はデフォルト文字列。
    <目次>: 目次ページ名。ここにページの順序を記載する。詳細は下記。
    • <目次>ページの指定を省略すると目次がデフォルトで使用される。
    • ブロック型の場合、引数に書いたものだけ、引数の順にメニュー表示される。
    • ブロック型の場合、<目次>以外を全て省略すると、全てが表示される。
  • <目次>ページの記載方法
    *目次ページは、番号付き箇条書き(+,++,+++)部分がページとして採用される。
    +[[<ページ名>]]
    +[[<ページ名>]]
    +[[<ページ名>]]
    …
    • 番号付き箇条書き部分をページとして採用。単純に出現順をページ順として扱う。
    • 目次の各ページはBracketNameにしても、しなくてもよい。
    • 番号付き箇条書きの深さは関係なし。
  • スタイルシートへ記載。skin/default.ja.cssに下記項目を追加する。
    /* navi2.inc.php */
    div.navi2
    {
    	text-align:center;
    }
    div.navi2center
    {
    	text-align:center;
    }
    div.navi2left
    {
    	float:left;
    	text-align:left;
    }
    div.navi2right
    {
    	float:right;
    	text-align:right;
    }
    • ブロック型の引数(left|center|right)に対応している。
  • (必要なら)skinを切り替える設定をする。skin/pukiwiki.skin.ja.php内。
    <?php if ( $vars['presentation'] == 'on' ){ ?>
    ....<[実行]メニューを押した場合のskin>....
    <?php }else{ ?>
    ....<通常のskin>....
    <?php } ?>

使用例

  • 各プレゼンページの先頭に下記を記載。(実際には改行しない)
    &navi2(プレゼン/目次,top); / &navi2(プレゼン/目次,prev); / &navi2(プレゼン/目次,next); /
    &navi2(プレゼン/目次,end); / &navi2(プレゼン/目次,toc);
  • ブロック型
    #navi2(プレゼン/目次,prev,next,toc)
    【表示例】

    [前へ] [次へ] [目次へ]

  • 目次記載方法:「プレゼン/目次」ページに下記のように記載
    *プレゼンの目次
    +ページ1
    +ページ2
    ++ページ3
  • 例えば、BracketNameにしてもOK。リンク付き目次に出来る。
    +[[ページ1]]
    +[[ページ2]]
    ++[[ページ3]]

ダウンロード

ここに添付しました。御利用下さい。

  • 「&ref(): ERROR: File not found: "navi2.inc.php.5" at page "バックアップ/navi2.inc.php";」←提供中
    リビジョン内容
    v0.5debug/&を&amp;に
    v0.4プレゼンモード対応。ブロック型のCSSにnavi2right,navi2left,navi2center
    v0.3スタイルのクラスをnavi2に統一。ブロック型作成
    v0.2目次をBracketNameに対応
    v0.1tooltip.inc.phpから新規作成。debug

アンケート

  • このプラグインに満足しておりますか?
    選択肢 投票
    はい 3  
    いいえ 0  
  • 「いいえ」に投票した方に質問です。
    どのような修正を加えれば、よくなると思いますか?下記のコメントに記入して下さい。

コメント

  • 三浦克介? 2003-08-26 (TUE) 08:45:43

    作成、ありがとうございます。いくつか、要望です。

    1. CSSのクラス名は、CSSのセレクタで選択できますので、リンクの有無で分ける必要はないと思いますよ、っていうか、カスケードできなくなるので、同じの方が有り難いかも。
    2. 自由度は減りますが、naviプラグインのようにブロック型ものもあると、便利そうに思います。
    3. プレゼンテーションに特化した機能ですが、通常モードとプレゼンテーションモードを切り替えるためのリンクを追加できないでしょうか。具体例としては、"実行" というようなリンクを入れ、それをクリックすると、URI のクエリ部に "presentation=on" が入るようにしておきます。これが入るとプレゼンテーションモードになり、プレゼンテーション用CSSを読み込むように、スキンに細工をしておきます。初期の印刷用スキン のイメージです。プレゼンテーションモード時には、このモードが持続されるように、Prev や Next などのリンクにも、"presentation=on" を入れる必要があります。また、通常モードに戻す "停止" 等のリンクもあると良いかと思います。
  • sha 2003-08-26 (TUE) 10:26:51

    navi2.inc.php.3にて、要望の(i.)(ii.)に対応しました。ご利用下さい。さて、要望(iii.)については、現在の仕様では、リンクは単にページを指定してるだけなので対応できません。plugin_navi2_action()を作成して、それを叩いてページを表示するような仕様へ変更する必要があります。もしかして、presen_onの時だけそうすればよいのかな?

  • 三浦克介? 2003-08-26 (TUE) 12:29:26

    素早い対応、感謝です。(iii) の件、以下のような感じでできませんか? あまり汎用性はないので、PHPカンファレンス専用ということでも良いかと思います。

    if($vars['presentation']=='on'){
        return "<a haref=\"$script?cmd=read&amp;presentation=on&amp;page=$f_page\" class=\"navi2\">$title</a>";
    }
    else {
        return "<a haref=\"$script?$f_page\" class=\"navi2\">$title</a>";
    }
  • 三浦克介? 2003-08-26 (TUE) 12:39:46

    ↑"実行"、"停止" については、条件判定を逆にしないといけないです。あと、$title も条件に応じて、"実行" と "停止" を切り替えないといけないですね。

  • sha 2003-08-26 (TUE) 13:28:44

    navi2.inc.php.4で対応しました。今のところ、切り替えでなくて、enable|disableになってます。簡単なdebugだけしてあります。

  • 三浦克介? 2003-08-26 (TUE) 16:01:06

    ありがとうございます。いい感じです。

    • sha 2003-08-26 (TUE) 16:09:45

      どういたしまして。お役に立ててよかったです。

  • 三浦克介? 2003-08-27 (WED) 09:35:18

    href 中で &amp; とすべき所が & になっていて、HTML validator でエラーが出ます。

    • sha 2003-08-27 (WED) 11:24:11

      navi2.inc.php.5で対応しました。HTML validatorのエラーというのを再現できておりませんが、該当箇所と思われる部分を修正しておきました。

##comment


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-04-10 (土) 19:37:41 (3943d)