include2.inc.php

サマリ行数制限つきinclude
リビジョン1.0
対応バージョン1.4.x
投稿者a-isd
投稿日2004-05-30 (SUN) 12:44:50

概要

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


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

使い方

初版

articleプラグインが置かれていて成長するページの先頭50行をFrontPageに表示 なんてことをするのに使います。

 #include2({ページ名},{行数})

行数を指定しなければ、includeと同じ挙動をするはずです。

最新

#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しているページのタイトルもリンクも表示しない。

注意

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

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

  • page1
    #include2(page2)
  • page2
    #include(page1)

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

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

ダウンロード

ファイル名を include2.inc.php に変更して、plugin ディレクトリに放りこんでください。

ファイル名日付作者変更点
fileinclude2.inc.php.102005-03-05sonotsページタイトルアンカーが固定アンカーになるように変更*1。見出しと同じようにアンカーリンクが表示されるように変更。
fileinclude2.inc.php.92005-03-04sonots先のアンカーを改造#includeと共存するように改造*2。ところどころにおかしな記述があったので修正*3。いっそのこと最新 include.inc.php とマージ*4。コードの整頓*5
fileinclude2.inc.php.72005-02-25sagenページタイトルの見出しにアンカーを付けるように変更。インクルードする最大ページ数設定可能に。
file1+2include2.inc.php2005-01-121+1?行指定の書式を変更
file1+1include2.inc.php2005-01-111+1?includeする開始行も指定できるように拡張。page オプションを追加。
fileinclude2.inc.diff 対include2.inc.php2004-11-10sagenオプションを追加。read, edit, title, noneを追加
fileinclude2.diff2 対include2.inc.php2004-07-28banikoコメント行はskip
fileinclude2.diff 対include.inc.php2004-05-30a-isdinclude からの diff
fileinclude2.inc.php2004-05-30a-isd初版

コメント

  • baniko 2004-07-28 (WED) 12:10:08

    便利に利用させてもらっています。元のページにコメント(//)が入っている場合、表示行数が減ってしまって・・・。そこで、コメント行はskipするように改良を加えました。試してみてください。

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

引数設定は、このようになります。

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

*1 v9 での「先のアンカーを改造#includeと共存するように改造」のときに static 変数を global 変数にしてしまったわけですが、あえて global のままにしてあります(include3などがでてきたときのため)。static のほうがうれしいのなら言ってください。>開発の方々
*2 むろん改造#includeがなければ動かないという意味ではありません(後記:改造#includeがなくなりました)
*3 定義されていない $link を使用していたり
*4 でも $menubar を include できないようになっているのはおかしいと思うのでそこはシカト
*5 クリンナップのまとめをうけて PEAR 標準コーディング規約にしたつもり
*6 banikoさんのinclude2.diff2も取り込んでます
*7 本当はもう一箇所あったりします。同じコード2回書いててすみません
*8 シンプルなincludeと多機能なinclude2の両方をページによって使い分けているという人はあまりいない気もしますし。

添付ファイル: fileinclude2.inc.php.10 2909件 [詳細] fileinclude2.inc.php.9 1610件 [詳細] fileinclude.inc.php.2 1548件 [詳細] fileinclude2.inc.php.7 1761件 [詳細] file1+2include2.inc.php 1630件 [詳細] file1+1include2.inc.php 1577件 [詳細] fileinclude2.inc.diff 1807件 [詳細] fileinclude2.inc.php 1785件 [詳細] fileinclude2.diff 1688件 [詳細] fileinclude2.diff2 1813件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-02-13 (金) 07:10:41
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.487 sec.

OSDN