**navi2.inc.php [#n1a1eb1f]
|RIGHT:100|LEFT:360|c
|~サマリ|目次の順に沿って前後ページへのリンクを出力する#navi2|
|~リビジョン|0.7|
|~対応バージョン|1.4|
|~投稿者|[[sha]]|
|~投稿日|&new{2003-08-26 (TUE) 00:57:49};|
*** 概要 [#d577ceda]
-目次ページに、ページ順に並べてを記述しておく。その順に従って「前へ」「次へ」でページへのリンクが出現する。
-「[[dev:PHPカンファレンス]]」準備を受けて緊急作成。

#contents

*** 説明 [#s24a9a9e]
-「[[PHPカンファレンス/スライド例「ページ間の移動」>dev:PHPカンファレンス/スライド例#p17ababa]]」を受けて作成。
-存在しないページへのリンクは、リンクなし文字列で出力。
-目次ページで、あるページをコメントアウト(//)すると、見かけ上そのページがなくなったかのように振舞う。目次では見えるようにしておくなら、番号付き箇条書きでない記述方法(ただの箇条書きとか)で記載しておけばよい。
-スタイルシート用のクラス名は、%%リンクありが「''navi2''」、リンク無しが「''navi2none''」%%リンクの有無によらず「''navi2''」。ただし、ブロック型の<div>については、left|center|rightに応じて、「''navi2left''」「''navi2center''」「''navi2right''」が用意される。
-プログラム中で、make_link.phpのInlineConverterクラスget_objectsメソッドを使用しています。仕様が変更されると動作しなくなる可能性があります。
-XHTML1.1 validation check済み。
-ここで実験しています→「[[sha:navi2.inc.php]]」
*** 使用法 [#hb094032]
-引数の仕様
 #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を指定すると全てが表示される。
&br;
-<目次>ページの記載方法
 *目次ページは、番号付き箇条書き(+,++,+++)部分がページとして採用される。
 +[[ページ名]]
 +ページ名は[[ページ名]]です。
 +[[エイリアス>ページ名]]←エイリアスもOK
 …
--番号付き箇条書きの出現順を単純にページ順として扱う。
--番号付き箇条書きに&#x5b;&#x5b;BracketName&#x5d;&#x5d;が含まれない場合、文字列全体をページ名として採用。別の文字列を続けて表示させたい場合は、改行して書くとよい。
--番号付き箇条書きに&#x5b;&#x5b;BracketName&#x5d;&#x5d;が含まれる場合は、&color(red){最初の&#x5b;&#x5b;BracketName&#x5d;&#x5d;がページ名};として扱われる。
--&color(red){エイリアスが使用できる。};
--番号付き箇条書きの深さは関係なし。
-スタイルシートへ記載。''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 } ?>
*** 使用例 [#fa480ca2]
-各プレゼンページの先頭に下記を記載。(実際には改行しない)
 &navi2(プレゼン/目次,top); / &navi2(プレゼン/目次,prev); / &navi2(プレゼン/目次,next); /
 &navi2(プレゼン/目次,end); / &navi2(プレゼン/目次,toc);
//-左右両端に配置する方法
// &color(;float:left;text-align:left;){&navi2(navi2.inc.php,prev);};
// &color(;float:right;text-align:right;){&navi2(navi2.inc.php,next);};
//【表示例】
//#hr
//~&color(red;float:left;text-align:left;){前へ};
//~&color(red;float:right;text-align:right;){次へ};
//#hr
-ブロック型
 #navi2(プレゼン/目次,prev,next,toc)
【表示例】
~&color(red){[前へ] [次へ] [目次へ]};~
&br;
-目次記載方法:「プレゼン/目次」ページに下記のように記載
 *プレゼンの目次
 +ページ1
 +ページ2
 ++ページ3
-例えば&#x5b;&#x5b;BracketName&#x5d;&#x5d;にしてもOK。その部分のみページ名として扱う。エイリアスにも対応。こうしてリンク付き目次に出来る。
 +[[ページ1]]
 +[[エイリアス>ページ2]]も御参照下さい。
 ++[[ページ3]]
*** ダウンロード [#y54362de]
ここに添付しました。御利用下さい。
-「&ref(navi2.inc.php.7);」←提供中
|CENTER:|CENTER:|c
|リビジョン|更新日|	内容|h
|v0.7|2004/03/13|エイリアス対応。ブロック型のdefaultからpresen_{on,off}を除き、presen引数追加。&#x5b;&#x5b;BracketName&#x5d;&#x5d;部分のみページ名に使用|
|v0.6|2003/10/09|debug/ブロック型でリンクのURLが出ない←動作に変化なし|
|v0.5|2003/08/27|debug/&amp;を&amp;amp;に|
|v0.4|2003/08/26|プレゼンモード対応。ブロック型のCSSにnavi2right,navi2left,navi2center|
|v0.3|2003/08/26|スタイルのクラスを''navi2''に統一。ブロック型作成|
|v0.2|2003/08/26|目次を&#x5b;&#x5b;BracketName&#x5d;&#x5d;に対応|
|v0.1|2003/08/26|tooltip.inc.phpから新規作成。debug|

*** アンケート [#c586a8e1]
-このプラグインに満足しておりますか?
|BGCOLOR(#FFCCCC):''選択肢''|BGCOLOR(#FFCCCC):''投票''|
||RIGHT:|c
|BGCOLOR(#EEF5FF):はい|BGCOLOR(#EEF5FF):14|
|BGCOLOR(#DDE5FF):いいえ|BGCOLOR(#DDE5FF):0|
-「いいえ」に投票した方に質問です。~
どのような修正を加えれば、よくなると思いますか?下記のコメントに記入して下さい。
*** コメント [#p044b037]
-[[三浦克介]] &new{2003-08-26 (TUE) 08:45:43};
~作成、ありがとうございます。いくつか、要望です。
++CSSのクラス名は、CSSのセレクタで選択できますので、リンクの有無で分ける必要はないと思いますよ、っていうか、カスケードできなくなるので、同じの方が有り難いかも。
++自由度は減りますが、naviプラグインのようにブロック型ものもあると、便利そうに思います。
++プレゼンテーションに特化した機能ですが、通常モードとプレゼンテーションモードを切り替えるためのリンクを追加できないでしょうか。具体例としては、"実行" というようなリンクを入れ、それをクリックすると、URI のクエリ部に "presentation=on" が入るようにしておきます。これが入るとプレゼンテーションモードになり、プレゼンテーション用CSSを読み込むように、スキンに細工をしておきます。[[初期の印刷用スキン>dev:PukiWiki/1.4/ちょっと便利に/印刷用表示対応スキン]] のイメージです。プレゼンテーションモード時には、このモードが持続されるように、Prev や Next などのリンクにも、"presentation=on" を入れる必要があります。また、通常モードに戻す "停止" 等のリンクもあると良いかと思います。
-[[sha]] &new{2003-08-26 (TUE) 10:26:51};
~''navi2.inc.php.3''にて、要望の(i.)(ii.)に対応しました。ご利用下さい。さて、要望(iii.)については、現在の仕様では、リンクは単にページを指定してるだけなので対応できません。plugin_navi2_action()を作成して、それを叩いてページを表示するような仕様へ変更する必要があります。もしかして、presen_onの時だけそうすればよいのかな?
-[[三浦克介]] &new{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>";
 }
-[[三浦克介]] &new{2003-08-26 (TUE) 12:39:46};
~↑"実行"、"停止" については、条件判定を逆にしないといけないです。あと、$title も条件に応じて、"実行" と "停止" を切り替えないといけないですね。
-[[sha]] &new{2003-08-26 (TUE) 13:28:44};
~''navi2.inc.php.4''で対応しました。今のところ、切り替えでなくて、enable|disableになってます。簡単なdebugだけしてあります。
-[[三浦克介]] &new{2003-08-26 (TUE) 16:01:06};
~ありがとうございます。いい感じです。
--[[sha]] &new{2003-08-26 (TUE) 16:09:45};
~どういたしまして。お役に立ててよかったです。
-[[三浦克介]] &new{2003-08-27 (WED) 09:35:18};
~href 中で &amp;amp; とすべき所が & になっていて、HTML validator でエラーが出ます。
--[[sha]] &new{2003-08-27 (WED) 11:24:11};
~''navi2.inc.php.5''で対応しました。HTML validatorのエラーというのを再現できておりませんが、該当箇所と思われる部分を修正しておきました。
-[[adachi]] &new{2003-12-25 (THU) 17:06:01};
~目次ページの記述で、エイリアス名付きの書式にも対応して頂けませんか。
--[[sha]] &new{2004-02-02 (MON) 01:23:00};
~申し訳ありません。当分の間、ペンディング中です。しばらくお待ち下さい。
--[[sha]] &new{2004-03-13 (SAT) 16:19:48};
~エイリアス名付き書式に対応しました。ながらくお待たせしました。navi2.inc.php.7を御利用下さい。


#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.103 sec.

SourceForge