**include2.inc.php [#p9abaa1f]
|RIGHT:100|LEFT:360|c
|~サマリ|行数制限つきinclude|
|~リビジョン|1.0|
|~対応バージョン|1.4.x|
|~投稿者|[[a-isd]]|
|~投稿日|&new{2004-05-30 (SUN) 12:44:50};|

**概要 [#ae08be15]

''[[sonots:includex.inc.php]] に引っ越しました。''

----

読み込み行数制限つきのincludeです。標準のincludeを簡単に改造しました。

#contents

**使い方 [#l91429a9]
***初版 [#o83f2510]
articleプラグインが置かれていて成長するページの先頭50行をFrontPageに表示
なんてことをするのに使います。
  #include2({ページ名},{行数})
行数を指定しなければ、includeと同じ挙動をするはずです。

***最新 [#h4105583]

 #include2({ページ名},{行数指定},{オプション})
-行数指定
--省略	:全部表示
--m-n	:m行目からn行目まで表示(n行目m行目を含む)。
--m-	:m行目から全部表示。
-- -n	:最初からn行目まで表示。
--n	:最初からn行目まで表示。(-n, 1-n と同じ。)

-オプション
--read	:includeしているページへのリンクを表示。(※省略時デフォルト) 
--edit	:includeしているページへの編集リンクを表示。
--title	:includeしているページ名表示。(リンクはしない)
--page	:階層化しているページの最後の部分を表示。
--none	:includeしているページのタイトルもリンクも表示しない。

**注意 [#bf443401]
include2 を使用しているのに標準プラグイン include を使用しているページが残っているとおかしな動作になることがあります。

include と include2 がもつ、すでに表示したかどうかの判断は別々です。よって
-page1
 #include2(page2)
-page2
 #include(page1)

のようにされると現在表示しているページが page1 だとして、
もちろんすでに page1 を表示しているので include しないはずが include できてしまいます。

よって最初にすべてを inlcude2 に書き換えるか、
この現象が起きたときに include と include2 の不整合のせいであることを思い出して include2 に書き直してみてください。

**ダウンロード [#c3f69c59]

ファイル名を include2.inc.php に変更して、plugin ディレクトリに放りこんでください。
|ファイル名|日付|作者|変更点|h
|&ref(include2.inc.php.10);|2005-03-05|[[sonots]]|ページタイトルアンカーが固定アンカーになるように変更((v9 での「先のアンカーを[[改造#include>自作プラグイン/contents2_1.inc.php#f0771d8a]]と共存するように改造」のときに static 変数を global 変数にしてしまったわけですが、あえて global のままにしてあります(include3などがでてきたときのため)。static のほうがうれしいのなら言ってください。>開発の方々))。見出しと同じようにアンカーリンクが表示されるように変更。|
|&ref(include2.inc.php.9);|2005-03-04|[[sonots]]|先のアンカーを[[改造#include>自作プラグイン/contents2_1.inc.php#f0771d8a]]と共存するように改造((むろん改造#includeがなければ動かないという意味ではありません(後記:改造#includeがなくなりました) ))。ところどころにおかしな記述があったので修正((定義されていない $link を使用していたり))。いっそのこと最新 include.inc.php とマージ((でも $menubar を include できないようになっているのはおかしいと思うのでそこはシカト))。コードの整頓(([[クリンナップのまとめ>dev:BugTrack/779]]をうけて PEAR 標準コーディング規約にしたつもり))。|
|&ref(include2.inc.php.7);|2005-02-25|[[sagen]]|ページタイトルの見出しにアンカーを付けるように変更。インクルードする最大ページ数設定可能に。|
|&ref(1+2include2.inc.php);|2005-01-12|[[1+1]]|行指定の書式を変更|
|&ref(1+1include2.inc.php);|2005-01-11|[[1+1]]|includeする開始行も指定できるように拡張。page オプションを追加。|
|&ref(include2.inc.diff); 対include2.inc.php|2004-11-10|[[sagen]]|オプションを追加。read, edit, title, noneを追加|
|&ref(include2.diff2); 対include2.inc.php|2004-07-28|[[baniko]]|コメント行はskip|
|&ref(include2.diff); 対include.inc.php|2004-05-30|[[a-isd]]|include からの diff|
|&ref(include2.inc.php);|2004-05-30|[[a-isd]]|初版|

**コメント [#df8f2fe2]
-[[baniko]] &new{2004-07-28 (WED) 12:10:08};
~便利に利用させてもらっています。元のページにコメント(//)が入っている場合、表示行数が減ってしまって・・・。そこで、コメント行はskipするように改良を加えました。試してみてください。
--include2からのdiff
---&ref(include2.diff2);
-すみません。include.diffって、どこにインストールすればいいんですか? インストールしなくてもいいのかな・・・ -- [[ゆきえ]] &new{2004-10-17 (日) 15:18:07};
--diffは差分ファイルです。適用方法は[[patch/diff Tips>http://www.sip.eee.yamaguchi-u.ac.jp/kou/diff-patch.html]]参照。 -- [[teanan]] &new{2004-10-17 (日) 15:55:09};
-最近このプラグインの存在に気づいて便利に使わせてもらってます。ところで、51行目のリンクの処理
 $link = "<a href=\"$script?cmd=edit&amp;page=$r_page\">$s_page</a>";
って何で「cmd=edit&amp;page=」が入ってるんでしょうか。クリックすると編集ページが開いてしまうので、
 $link = "<a href=\"$script?$r_page\">$s_page</a>";
こうした方がいいような気がするのですが……。これだと何か問題があるのかな? -- [[sagen]] &new{2004-11-01 (月) 11:31:33};
 #include2({ページ名},{行数},{オプション})
と引数を一つ追加して、オプションで
-read を指定:includeしているページへのリンクを表示(※引数省略時デフォルト)
-edit を指定:includeしているページへの編集リンクを表示
-title を指定:includeしているページのタイトルを表示(リンクはしない)
-none を指定:includeしているページのタイトルもリンクも表示しない&br;
となるように改造してみました。include2.inc.phpからのdiffです((banikoさんのinclude2.diff2も取り込んでます))。&ref(include2.inc.diff); -- [[sagen]] &new{2004-11-10 (水) 11:11:14};
-これで便利に使えるようになります。XOOPS風のニュースが書けます。お二人に感謝! -- [[10103]] &new{2004-11-10 (水) 16:07:52};
-とても便利に使わせていただいてます。 個人的な要望としては、includeする開始行も指定できると、もっと使いやすいかと思います。 -- [[amane]] &new{2004-12-18 (土) 19:47:16};
-開始行も指定してあると、便利そうですね~ -- [[Miu]] &new{2005-01-07 (金) 20:19:57};
-改造してみました。&ref(1+1include2.inc.php);
 #include2({ページ名},{行指定},{オプション})
--行指定で
--- 省略	:全部表示
--- m-n	:m行目からn行目まで表示。
--- n	:n行目の一行だけ追加。
--- m-	:m行目から全部表示。
--- -n	:最初からn行目まで表示。( 1-n と同じ。)
--ついでに、オプションで
---page	:「階層化しているときは、最後の部分を表示(←なんと言ったらいいのか?)」を追加。
-テストしてください。添削も希望。&worried; -- [[1+1]] &new{2005-01-11 (火) 09:58:06};
--ファイル名の頭の「1+1」を削除して、ご利用ください。 -- [[1+1]] &new{2005-01-11 (火) 10:08:59};
-今気づいたのですが、エラー文章は、ja.lng に書くべきなのですね。 (^^; -- [[1+1]] &new{2005-01-11 (火) 15:40:31};
--試してみました。とっても便利ですね!あえて言うならば・・・引数の指定がこれまでと違うので、plug-inに上書きすると現在適用しているページにエラーがでてしまうことですかね。 -- [[Miu]] &new{2005-01-11 (火) 18:18:42};
-おー、便利ですね。今までのから乗り換える人の為に、引数「n」と「-n」の挙動を後者のに統一してしまってはどうでしょうか。特定の1行だけ表示したい場合は、「n-n」でできるようにするということで。&br;それと137行目は以前のままの「"<h1>$link</h1>\n$body\n";」で良いと思います。 -- [[sagen]] &new{2005-01-11 (火) 20:59:20};
-Miuさん、sagenさんご意見ありがとう。改良しました。&ref(1+2include2.inc.php); -- [[1+1]] &new{2005-01-12 (水) 01:34:10};
 #include2({ページ名},{行指定},{オプション})
--行指定で
--- 省略	:全部表示
--- m-n	:m行目からn行目まで表示。
--- n-n	:n行目の一行だけ追加。
--- m-	:m行目から全部表示。
--- n	:最初からn行目まで表示。( 1-n 、これまでと同じ。)

引数設定は、このようになります。
-はじめまして。これって、一番下の行から数えてm行目からn行まで表示する、って出来ないんでしょうか。 -- [[bob]] &new{2005-02-02 (水) 04:22:50};
-ページ整理させてもらいました。 --  &new{2005-02-08 (火) 22:24:11};
-[[もっと便利に - include プラグインの改造>自作プラグイン/contents2_1.inc.php#f0771d8a]]を参考に、ページタイトルの見出しにアンカーを付けるようにして[[自作プラグイン/contents2_1.inc.php]]で拾えるようにしました。&ref(include2.inc.php.7); ただし、contents2_1.inc.phpの331行目
 preg_match('/^#include\((.+)\)/', $line, $matches) &&
を
 preg_match('/^#include.+\((.+)\)/', $line, $matches) &&
にする必要があります。それとついでに、''インクルードする最大ページ数''を設定可能にしました。26行目の
 // インクルードする最大ページ数
 define('PLUGIN_INCLUDE2_MAX', 5);
で設定してください。 -- [[sagen]] &new{2005-02-25 (金) 15:56:18};
-導入させて頂きました。有り難うございます。「指定した行数でスクロールをする」というオプションは・・・難しいですよね。。 -- [[ななしいちご]] &new{2005-02-27 (日) 11:12:53};
--CSSで設定すれば出来そうですね。 http://hp.vector.co.jp/authors/VA022006/css/visualren.html#overflow-clipping --  &new{2005-02-27 (日) 11:24:34};
-contents2_1 対応をうけて、contents2_1 のほうで #include も #include2 も両方うけれるように
 preg_match('/^#include.*\((.+)\)/', $line, $matches) &&
のようにしました((本当はもう一箇所あったりします。同じコード2回書いててすみません))。したのはよいのですが、改造 #include と #include2 の $count (何 include 目かのカウンタ)が独立しているので、#include と #include2 を両方使用しているような人がいた場合、アンカーが合わなくなってしまいます。というわけで、#include と $include2 共通の global なカウンタをもつように改造したのが &ref(include.inc.php.2); と &ref(include2.inc.php.9); です。これによってついでに、最大ページ数制限のカウンタも共有するようになりました。ついでにすでに表示したページかどうかの判断用のリストも共有化するようになりました。とはいえ、この #include はあくまで改造 #include であってデフォルトではないわけで、#include2 のほうだけダウンロードされるとやはりずれるわけなのです。というわけで #include2 は正直サポートしきれないかな、というのがこちらに書かなかった理由だったのをいじっている最中に思い出しました。困ったものです。カウンタを利用するのではなく、ページ名からハッシュを作ったりなんかするといいかなとも思っているのですが、毎回作成することになるので重そう、とか。うまい解決方法が・・・。ページ名まるまるアンカーに投げてしまって大丈夫かな?-- [[sonots]] &new{2005-03-05 (土) 00:09:54};
-お疲れ様です。改造 #include と #include2 の同時使用はサポートしないと割り切って((シンプルなincludeと多機能なinclude2の両方をページによって使い分けているという人はあまりいない気もしますし。))、カウンタの共有化はしないというのも一つの手かもしれません。 -- [[sagen]] &new{2005-03-05 (土) 11:58:32};
-結局、アンカーをページ名をキーにしたハッシュにして固定アンカーになるようにしました。ハッシュなのでかぶることがあるかもしれませんが(さらに8文字にきってるし)、たぶん大丈夫です。#include と #includ2 の併用は[[注意>#bf443401]]ぐらいにとどめることにしました。ちなみにこれは #contents2_1 と関係のない純粋な注意です。 -- [[sonots]] &new{2005-03-05 (土) 22:05:40};
- [[sonots:includex.inc.php]] に引っ越します。引っ越します、と言っても私の管理物ではないのですが勝手に・・・ -- [[sonots]] &new{2006-07-23 (日) 20:12:03};

#comment
//#comment

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

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.052 sec.

OSDN