navi2.inc.php

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

概要

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

説明

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

使用法

  • 引数の仕様
    #navi2([<目次>],[top[:<見出し>]],[prev[:<見出し>]],[next[:<見出し>]],
           [end[:<見出し>]],[toc[:<見出し>]],[presen_on[:<見出し>]],
           [presen_off[:<見出し>]],[left|center|right|presen])
    &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: ブロック型でデフォルトの時、presen_on, presen_offの見出しを表示
    presen_on: プレゼンモードON(PHPで$vars['presentation']=='on')
    (./?cmd=read&presentation=on&page=...)
    presen_off: プレゼンモードOFF
    <見出し>: リンクとして表示される文字列。省略時はデフォルト文字列。
    <目次>: 目次ページ名。ここにページの順序を記載する。詳細は下記。
    • <目次>ページの指定を省略すると目次がデフォルトで使用される。
    • ブロック型の場合、引数に書いたものだけ、引数の順にメニュー表示される。
    • ブロック型の場合、<目次>以外を全て省略すると、presen_on, presen_offを除いて全てが表示される。presenを指定すると全てが表示される。
  • <目次>ページの記載方法
    *目次ページは、番号付き箇条書き(+,++,+++)部分がページとして採用される。
    +[[ページ名]]
    +ページ名は[[ページ名]]です。
    +[[エイリアス>ページ名]]←エイリアスもOK
    …
    • 番号付き箇条書きの出現順を単純にページ順として扱う。
    • 番号付き箇条書きに[[BracketName]]が含まれない場合、文字列全体をページ名として採用。別の文字列を続けて表示させたい場合は、改行して書くとよい。
    • 番号付き箇条書きに[[BracketName]]が含まれる場合は、最初の[[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]]

ダウンロード

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

  • filenavi2.inc.php.7」←提供中
    リビジョン更新日内容
    v0.72004/03/13エイリアス対応。ブロック型のdefaultからpresen_{on,off}を除き、presen引数追加。[[BracketName]]部分のみページ名に使用
    v0.62003/10/09debug/ブロック型でリンクのURLが出ない←動作に変化なし
    v0.52003/08/27debug/&を&amp;に
    v0.42003/08/26プレゼンモード対応。ブロック型のCSSにnavi2right,navi2left,navi2center
    v0.32003/08/26スタイルのクラスをnavi2に統一。ブロック型作成
    v0.22003/08/26目次を[[BracketName]]に対応
    v0.12003/08/26tooltip.inc.phpから新規作成。debug

アンケート

  • このプラグインに満足しておりますか?
    選択肢投票
    はい14
    いいえ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のエラーというのを再現できておりませんが、該当箇所と思われる部分を修正しておきました。

  • adachi? 2003-12-25 (THU) 17:06:01

    目次ページの記述で、エイリアス名付きの書式にも対応して頂けませんか。

    • sha 2004-02-02 (MON) 01:23:00

      申し訳ありません。当分の間、ペンディング中です。しばらくお待ち下さい。

    • sha 2004-03-13 (SAT) 16:19:48

      エイリアス名付き書式に対応しました。ながらくお待たせしました。navi2.inc.php.7を御利用下さい。



添付ファイル: filenavi2.inc.php.7 2137件 [詳細]

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

OSDN