トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/154

ページの作成や編集にはユーザ登録が必要です。

開閉式リンクツリー表示プラグイン

  • 投稿者: あき
  • カテゴリ: 新規
  • 優先度: 普通
  • 状態: 提案
  • 日時: 2004年10月27日 01時31分12秒

 内容

開閉式のリンクツリーを表示するプラグインです。ページのツリー構造をPagetreeに記載しておくと、好きな所にリンクツリーを表示させることができます。

文章で説明するのが難しいので、興味のある方はとりあえず、サンプルページをご覧下さい。

サンプルページはこちらhttp://fan.or.tp:8080/wiki2/wiki.cgi

左上のメニューの部分です。リンクが切れていた(とっくに切れていた?)ので新規ページに張り直しました。

 インストール方法

添付ファイルを解凍し、plugin/naviviewディレクトリをディレクトリごとpluginディレクトリ下に放り込んで下さい。

theme/imagesディレクトリをディレクトリごとthemeディレクトリ下に放り込んでください。

プラグイン設定画面でnaviviewを有効にしてください。

管理者メニューのスタイル設定でユーザ定義スタイルに「a.open { cursor:hand;}」を追加してください。

 使用法

まず、予め各ページの階層関係をページツリーページ(デフォルト名:Pagetree)に記載しておきます。

<<< Pagetree >>>
@[[トップ|FrontPage]]
@@[[コンピュータ]]
@@@[[OS]]
@@@@[[Windows]]
@@@@[[UNIX]]
@@@@@[[Solaris]]
@@@@@[[Linux]]
@@@@@[[FreeBSD]]
@@@@[[MacOS]]

行頭が「@」の行のみ有効。「@」の数が階層レベルに対応します。

補足:

  • 表示名とページ名を別々に記述できます。
@[[トップ|FrontPage]]
  • 巡回リンクを張ることや複数の経路を持たせることも可能です。
@[[トップ|FrontPage]]
@@[[コンピュータ]]
@@@[[トップ|FrontPage]]      <--- 巡回する
@[[トップ|FrontPage]]
@@[[パソコン]]
@@@[[Windowsマシン]]
@@@@[[Windows]]              <--- 同じページにリンク
@@[[OS]]
@@@[[Windows]]               <--- 同じページにリンク
  • WikiFarmのページも指定できます。
@[[トップ|FrontPage]]
@@[[ドキュメント|doc:FrontPage]]

次に、MenuやHeaderで本プラグインを使用します。

書式
{{naviview pagetree, disp_direction, init_open, open_mode}}

パラメータ
          pagetree        :ページツリーページ(省略可)
                           省略時      「Pagetree」
          disp_direction  :表示方向(表示種別がparentの時のみ有効、省略可)
                          「v」        縦に表示(インデントの幅が少し変わるだけ)
                           省略時      横に表示
 
          init_open       :フォルダ初期開閉モード
                          「o」    オープン
                           省略時  クローズ
          
          open_mode       :フォルダ開閉モード
                          「e」   エクスプローラ風(どんどんオープン)
                           省略時  Windowsヘルプ風(現在位置の上位フォルダのみオープン)

          パラメータの定義順は順不同。

 制限事項

JavaScript版にした(rev04)ことで下記のような制限事項ができてしまいました。問題がある方は(rev03)をお使い下さい。

  • ネスケでは動かない。(JavaScript内に構文エラー。技術不足で原因が何だか良く分からない)→FireFox1.0では動作するそうです。
  • 出力内容に<BODY>タグを含んでしまっている。(ページ内に<BODY>タグが2つになってしまう→同プラグイン使用ページではツリーが表示されない&他の<BODY>タグでonload関数を使っているとツリーが表示されない)

 ライセンス

GPL。ご自由にお使いください。

 コメント

一応公開はしますが、まだ試作段階です。将来的にはメニューの開閉はJavaScriptで高速に行わせたいと思ってます。JavaScript版に対応しました。(naviview_rev04.zip 但し、おそらくIE専用)何か要望がございましたらご意見下さい。

サンプルページが開けない、うまく設置できない等あれば何なりとご指摘下さい。

3.5.6、3.5.8のみ確認済みです。

  • バージョンアップしました。改良内容は次のとおり。 - あき (2004年10月30日 00時23分16秒)
    1. ページ名の左側のマークをアイコンにした。
    2. 未登録ページを表示時、FrontPageへのリンクが無効になってしまっていたので有効になるよう修正した。
    3. 存在しないページもリストに登録されていれば、表示するようにした。
    4. 同じページを複数登録した場合、登録順が一番最後のカテゴリに関連付けられてしまっていたので、階層レベルが最も浅く、かつ登録順が先のカテゴリに関連付けるよう修正した。
    5. @以降の「[[」〜「]]」が最長一致でマッチしてしまっていたので最短マッチするようにした。(後ろに、自由にコメント記載が可能と可能となった)
    6. 外部リンク「[」〜「]」にも対応した。(環境設定の「外部URLの処理」の設定にも対応)
  • バージョンアップしたファイルはnaviview_rev01.zipです。古い添付ファイルの削除方法が分からないので、名前を変えて添付しました。 - あき (2004年10月30日 00時35分04秒)
  • 表示できました.タテ表示とヨコ表示の違いって何でしょう?左余白がほんの少し空くぐらいで違いがよくわかりません..??? - M-use (2004年10月30日 09時08分22秒)
  • BugTrack-plugin/155みたいに,ヨコ表示で top > computer > winxp みたいな表示になると嬉しいなぁ,と思ってみました. - M-use (2004年10月30日 09時12分12秒)
  • 左余白の幅が少し変わるだけです。そのまんまで、すみません。何か違いを持たせるつもりでいたのですが、イメージが湧かなくて・・・。横に並べるのがいいですか?でも、その場合の階層構造ってどう表現すべきなのでしょう?上位階層だけを表示するようにしてしまうと、BugTrack-plugin/155と変わらなくなってしまいますよね。逆に、オプションでそういうのを実装させた方がいいのかな? - あき (2004年10月30日 11時11分40秒)
  • > BugTrack-plugin/155と変わらなく・・・それもそうですね..具体的にどうやるのかは知らないのですが,下みたいなのはどうでしょう.要は,一番上の階層のフォルダが横並びになるというのです.←アイコン表示が気に入った人(*^^*) - M-use (2004年10月30日 12時42分28秒)
--------------------------------------
| top | computer    | internet | ... 
|     |   * OS      |          |
|     |     + winxp |          |
--------------------------------------
  • バージョンアップしました。改良内容は次のとおり。 - あき (2004年11月02日 19時24分28秒)
    1. アイコンを透過GIFに変更しました。
    2. 外部リンク時でも、「http://」から指定されていない場合は、内部リンクとして扱う用に改造しました。
    3. 画像ファイルの格納場所変更(attachにしていたが、環境によっては参照できないことが判明したため)
  • バージョンアップしたファイルはnaviview_rev02.zipです。 - あき (2004年11月02日 19時52分55秒)
  • M-useさん>最上階層のディレクトリ横並び、は、私の中でどうもしっくりきません。代わりに、BugTrack-plugin/155のアイコン版を検討していますので今暫くお待ちください。 - あき (2004年11月02日 19時54分00秒)
  • 了解しました!ありがとうございます(_o_) - M-use (2004年11月03日 08時58分54秒)
  • BugTrack-plugin/155もアイコンにしました。 - あき (2004年11月04日 23時13分04秒)
  • 素敵なプラグインをありがとうございます。早速使ってみたところ、2点問題を発見しました。1行目に外部リンクを書いても内部リンクとみなされてしまい実在しないページへのリンクとなる点と、Wiki Farm へのリンクが全く考慮されてない点です。直そうかとも思ったのですが、修正が広範に及びそうなので躊躇しています。とりあえず報告まで。 - gyo (2004年11月26日 10時52分40秒)
  • 書き忘れ。1行目以外では外部リンクは有効です。トップへのリンクに「wiki.cgi?page=FrontPage」と入るのがいやなので、「./」という外部リンクを使っているのです。 - gyo (2004年11月26日 10時56分24秒)
  • WikiFarmですか。自分が使っていないので、頭の隅にもなかったです。そうですね、現状では「wiki.cgi?page=FrontPage」としなければなりません。WikiFarmの仕様ってまだ使ったことがないからよく分からないんですよね。ページの有無の判定と、URLの指定方法が分かれば対応できるのですが・・・。申し上げにくいことなんですが、ご指摘の点以外にも自身バグを見つけています。また、(ディレクトリの扱いなど)使いにくさを感じてる部分もあります。(「ディレクトリ」というページが有るのは不自然。ディレクトリの開閉だけはJavaScriptで高速に行いたい等)時間があれば一新したいとは考えているのですが・・・。ページの有無の判定とURLの指定方法、もしご存じでしたら教えて頂けませんでしょうか? - あき (2004年11月27日 02時03分08秒)
  • ソース中に似たような HTML があちこちあったので、直すの大変そうだと思ってますが。。。えー、一言ではうまいこと説明できないんですが、以前 Printmode プラグインを作った時に書いた PrintmodeLink.pm というので似たような処理をしていると思うので、お手数ですがダウンロードして参考になさってみてください。 - gyo (2004年11月27日 03時52分57秒)
  • ドキュメントを見てみたけど、Farm の記述を探せませんでした。lib/wiki.pm の最後の方に Farm 用のメソッドがあるのと、基本的に InterWikiName みたいな書き方なので、多少参考になるかもしれません。このサイトの Menu にある「ドキュメント」のリンクも Farm です。 - gyo (2004年11月27日 04時30分52秒)
  • ソース中に似たような HTML があちこちあったので>お恥ずかしい。こちらのプラグインは実装優先で作成した暫定バージョンですので、ソースは汚いです。これを元にしたページリンク階層表示プラグインはまだましなのですが・・・。おおぅ、Printmodeプラグインの作者でしたか。これはこれは、プラグイン開発当初はかなり参考にさせて頂きました。 - あき (2004年11月27日 12時19分37秒)
  • PrintmodeLink.pm というので似たような処理をしている>はい、確かに、確認させて頂きました。ではまず、バグを直しましょうか。 - あき (2004年11月27日 12時19分49秒)
  • 対応が遅くなってすみません。WikiFarmのページも対応しました。(ソースはより汚くなりました) naviview_rev03.zip です。 - あき (2004年12月03日 21時12分31秒)
  • それから、トップのリンクに外部リンクが指定できない件ですが、現行バージョンでは仕様です。と言いますのも、トップはフォルダ兼ページである必要があるためです。フォルダでないと、その下のページが開けません。外部リンクですと、クリックした時点でそのページに飛んでいってしまい、ページの一覧を表示することすらできなくなってしまうためです。例外的に、トップページはデフォルトで開いた状態からスタートしますので一応は表示できているように見えますが、他のフォルダに移動してしまった場合を考えると、トップ下のページ一覧を表示させる手段が無い、ということがお判り頂けるかと思います。つまり現行バージョンの限界です。将来予定してるJavaScript版なら解決できます。と言ってもまだ暫くかかりそうなんですが・・・。たくさんの人からの要望が有れば、前倒しして頑張ろうかとも思いますが・・・。 - あき (2004年12月03日 21時24分14秒)
  • JavaScript版にしました。naviview_rev04.zip です。なにはともあれ、まずはサンプルページをご覧下さい。目的のページを探すところまではページの更新がかからず、高速に操作できます。しかし、思わぬ制限事項が付いてきていますので、割り切れる方のみご使用下さい。と後、対処法が分かる方はご教授ください。 - あき (2004年12月14日 00時12分44秒)
  • JavaScript版、Firefox1.0でも動きました。 - たけぞう (2004年12月14日 16時21分40秒)
  • コメントありがとうございます。Firefoxで動くかどうかが一番気になってましたので一安心です。 - あき (2004年12月14日 19時42分27秒)
  • さらに改良しました。オプションを2つ追加しました。追加した2つのオプションは2つとも指定する方が自然な気がします。お好みで・・・。naviview_rev05.zip です。 - あき (2004年12月14日 19時46分35秒)
  • すみません。なぜだか分かりませんが、「v」オプションを指定しないと無限ループしてしまうようです。「v」オプション自体殆ど意味のないオプションですが、とりあえず必ず付けるようにして凌いでください。後日対応します。 - あき (2004年12月14日 21時27分33秒)
  • 将来的には、「v」オプションを指定しない時はページリンク階層表示プラグインのような表示にしようかとも考えています。同じようなプラグインですしね。そういった意味でも今は「v」オプションは必ず付けるようにして使用して下さい。 - あき (2004年12月15日 08時31分54秒)
  • Farm にも対応してたんですね。気付くの遅くてすいません。一番上を外部リンクの「./」にしてもちゃんと動きました。でもこの書き方だと、どの位置に書いても最初に出てくる Farm の FrontPage をカレントページだと思っちゃうみたいですけど。ま、これは仕方ないですね。 - gyo (2004年12月15日 11時54分06秒)
  • Mozilla 1.7.3 では表示されませんからー。残念。 - gyo (2004年12月15日 12時01分02秒)
  • 歴史がよく分からないのですが、FireFox1.0では動くのに、Mozilla 1.7.3 では駄目なのですね。残念です。少なくともNetscape7.0では駄目だったので、ある程度は予測していましたが・・・。ただ、シェア的にはFireFoxで動いているとのことで、私的には一安心です。にしても、エラーの原因が分からないと何とも・・・ね。(エラーだと言うことが分かっても、何がいけないのか分からなければ対処しようがないです) JavaScriptをデバッグするようなツールってないのでしょうか?過去にMSのJavaScriptデバッガなるものをインストールしたことがありますが、何だかよく分かりませんでした。 - あき (2004年12月16日 01時35分29秒)
  • 上記、「JavaScriptデバッガ」は「スクリプトデバッガ」の誤りでした。Netscape7.0で動作しないのは、IE専用のDHTMLオブジェクトを用いていたためです。FireFoxで動作したのは、おそらくFireFoxがIEに合わせたためでしょう。 - あき (2005年07月20日 01時37分37秒)
  • 久々の更新になりますが、こちらもアップしておきます。最新版は naviview_rev06.zip です。これが私が今実際に使っているバージョンです。(公開していたのはまだアイコンが恰好悪いままのものでした。スミマセン) ちなみに、現状まだNetscapeには対応していません。動的な更新が可能なのか否か、またその方法も調べていません。ご了承下さい。 - あき (2005年07月20日 01時44分10秒)
  • サンプルのリンクが切れていましたので、張り直しておきました。 - あき (2005年07月20日 01時45分22秒)
  • すみません。4階層以上のツリーを表示させる場合に表示上のバグが有りました。修正し、アップ致しました。 - あき (2005年07月20日 13時00分01秒)
  • naviview.zip→naviview_rev01.zip→naviview_rev02.zip→naviview_rev03.zip→naviview_rev04.zip→naviview_rev05.zip→naviview_rev06.zip と入れていきましたが rev06を入れたとたんメニューが表示されなくなりました。 - 質問です (2005年07月27日 16時30分49秒)
  • 暫く考えこみましたが、何故動かなくなったのか、おおよその検討はつきました。トップ階層(「@」一つの行)を複数指定してますよね? これを一つにすれば動きます。 - あき (2005年07月28日 00時04分05秒)
  • と書くだけでは不親切かと思いますので、一応経緯を説明しておきます。サンプルページの「今後の予定」でも少し臭わせてますが、実は将来的に関連するプラグイン(ページリンク階層表示プラグインや未公開の階層表示プラグイン、開発中のサイトマップ表示プラグイン)との連動を計画しています。プログラム的には、トップ階層が複数存在してしまうと例外的処理をいくつも入れることになりますので、できれば避けたかった、という思惑があります。どうしても不便だと言うことであれば考えますが、とりあえず現時点では制限事項ということにさせて下さい。他にもっといろいろとやりたいことがあります。 - あき (2005年07月28日 00時13分12秒)
  • あ、ちょっとおかしなことを書きました。「トップ階層が複数指定できない」仕様変更の直接的な原因は、プラグインの連動計画ではなく、アイコン間を罫線(点線)で繋げる改良を行った際の作者の怠慢によるものです。胸を張って言えることではありませんが・・・。 - あき (2005年07月28日 00時18分41秒)
  • 当方の環境では次のエラーメッセージが現れます。Software error:Modification of non-creatable array value attempted, subscript -1 at plugin/naviview/Naviview.pm line 298. - cadp (2005年10月11日 00時05分53秒)
  • ↑Mozilla 1.7.12では、上記のサンプルページ(http://fan.or.tp:8080/wiki2/wiki.cgi)は適正に表示されます。 - cadp (2005年10月11日 00時08分59秒)
  • こちらでいろいろ試してみましたが、残念ながらよく分かりません。ただ、怪しい箇所はありますので、よろしければ試して頂けませんでしょうか? まず、naviviewの引数にv,o,e全てのオプションを指定してみて下さい。変数の初期化が上手く行ってない可能性がありまして、これで動き出すかもしれません。後は、ここのコメントにも書いてあるのですが、トップ階層(「@」が一つだけの行)を最初の1行だけにして下さい。今のところそれくらいしか思いあたりません。 - あき (2005年10月11日 06時46分45秒)
  • ↑1) Pagetree →pagetreeへリネーム。 - cadp (2005年10月11日 10時11分18秒)
  • ↑2) トップ階層(「@」が一つだけの行)が最初の1行だけであることを確認。 - cadp (2005年10月11日 10時11分38秒)
  • ↑3) {{naviview pagetree}}とオプション設定なしではトップのみ表示。ツリーが表示されません。ただし、フリーズしない。 - cadp (2005年10月11日 10時12分38秒)
  • ↑4) {{naviview pagetree v,o,e}}とオプション設定すると、上記のエラーが発生する。 - cadp (2005年10月11日 10時13分38秒)
  • ↑5) {{naviview pagetree v}}でも同様のエラー。 - cadp (2005年10月11日 10時14分38秒)
  • ↑6) 一度エラーが発生すると、{{naviview pagetree}}とオプション設定なしでもエラーが発生する。 - cadp (2005年10月11日 10時15分38秒)
  • 上記の4では、カンマが一つ足りませんね。「{{naviview pagetree,v,o,e}}」ではいかかでしょう? 6の挙動に関してはブラウザのキャッシュ機能が働いているからではないかと…。 - あき (2005年10月11日 12時47分06秒)
  • ヤッター。「{{naviview pagetree,v,o,e}}」で成功しました。なんだかお騒がせしました。ごめんなさい。 - cadp (2005年10月11日 15時51分28秒)
  • 参考までに、サンプルページ(http://fan.or.tp:8080/wiki2/wiki.cgi)のMenuのスクリプト、{{naviview v,o,e}}でははやりフリーズするようです。 - cadp (2005年10月11日 16時02分42秒)
  • 動作して良かったです。完成度が悪くてご迷惑をおかけ致します。 - あき (2005年10月11日 19時16分42秒)
  • ところで、「サンプルページ…ではやりフリーズするようです」とはどういう意味でしょうか? サンプルページを見ようとするとフリーズする、ということでしょうか? それともサンプルページと同じ引数のままではフリーズしてしまう、ということでしょうか? - あき (2005年10月11日 19時16分48秒)
  • サンプルページと同じ{{naviview v,o,e}}でははやりフリーズするようです。小生は最初にこの設定をコピーにしたため、上記の書式を確認せず、「カンマミス」を犯してしまったのです。言い訳です、すみません。 - cadp (2005年10月11日 23時39分13秒)
  • バグですね。Pagetreeページが無い時、本来ならエラーを出すべきですがエラーを出さず、途中まで処理をスルーしています。途中から動き出すのでおかしくなるようです。古いバージョンでは全ての処理をスルーするようになっています。改造の段階でバグを含めてしまった、ということですね。サンプルと同じ記述でも、Pagetreeページが存在すれば大丈夫なようです。 - あき (2005年10月12日 00時20分34秒)
  • pagetreeをtree-menuにリネームしたら、またフリーズしました。 - cadp (2005年10月12日 16時58分00秒)
  • ↑tree-sitemap(本文用)と2つのtreeを作りたかったんですが... - cadp (2005年10月12日 17時18分29秒)
  • ↑再起動して「{{naviview tree-menu,v,o,e}}」としてOK。tree-menuをtree-sitemapにコピーして、表示成功。フリーズするのは、利用中のtreeファイルをリネームした場合ですね。 - cadp (2005年10月12日 17時25分02秒)
  • ↑には外部リンクは可能であると記述されているようですが。小生のMozilla 1.7.12では、[ sitename ]というようにツリー内に外部リンクはできないようです。2つのWikiをツリーでつなぎたいのですが。 - cadp (2005年10月12日 19時07分39秒)
  • 2つのWikiをツリーで繋げるのはできるはずですよ。外部リンクの時のブラケットは1つで指定していますか?  sitename ね。 - あき (2005年10月12日 21時53分02秒)
  • リネームした時点でフリーズしてしまうのは、naviviewプラグインが参照していたそれまでのページが無くなってしまうからですね。現象としては最初のと同じです。 - あき (2005年10月12日 21時59分50秒)
  • 外部リンクをブラケット1つで指定したら、リンクはうまくゆきました。問題は次の2点です。 - cadp (2005年10月12日 23時53分13秒)
  • ↑外部リンクは3層までしか段落ちしないようで、@@@@は@@@と同じ階層に表示されます。 - cadp (2005年10月12日 23時54分36秒)
  • ↑識者には当然だったのでしょうが、tree-menuとtree-sitemapは同時に表示することはできないようですね。小生の場合、tree-menuを先に読み込むようで、tree-sitemapのページにもtree-menuの内容が表示されます。 - cadp (2005年10月12日 23時57分20秒)
  • 「@」3つと4つに関してはこちらでは大丈夫でしたが、5つ以上は駄目ですね。サンプルページのこの辺なんか…。コーディングし直しです。改造レベルでは対処しきれないです。ソースもメチャクチャ汚いし…。 - あき (2005年10月13日 01時36分50秒)
  • 同時に表示できないのは制限事項です。こちらは頑張っても駄目ですね。パフォーマンスを考慮して(当初の予定通り)JavaScript版を作成したのですが、それ以上にマイナス面が大きいようです。原点に返って、非JavaScript版から設計し直すことにしましょうかね。 - あき (2005年10月13日 01時37分13秒)
  • 内部リンクでは@が6個まで表示可能、外部リンクでは3個まで表示可能のようです。小生の環境はWin2000+Mozilla 1.7.12です。 - cadp (2005年10月13日 10時01分22秒)
  • 内部リンクが6個で外部リンクが3個? う〜ん、どういうふうにコーディングしたらそうなるのか…。お恥ずかしい…。 - あき (2005年10月13日 13時08分29秒)
  • Safariで動かなかったのでパッチを作ってみました。naviview_safari.patchとして添付致します。<HEAD>タグを除去して、document.getElementById()を使うようにしました。JavascriptやHTMLの知識が少ないのでこんな対応で良いのかわかりませんが、、。FireFoxやIEでも問題ないようです。 - おおなか (2006年03月16日 09時53分34秒)
  • ありがとうございます。作者本人があまりJavaScriptを熟知せずに作成したものでして、動作優先で作り込んでしまっているきらいがあります。ご指摘のとおり、互換性等上手く実装できていないと思います。申し訳ありません。パッチという形でなく、正式にrev07とかって形でアップして頂いて結構ですよ。その方がユーザの方々には便利な気がしますし…。 - あき (2006年03月17日 03時10分27秒)
  • いえいえ、非常に便利に使わせて頂いていますよ。ありがとうございます。では近々rev07としてアップさせて頂きます。 - おおなか (2006年03月27日 16時51分42秒)
  • サンプルページhttp://fan.or.tp:8080/wiki2/wiki.cgiが見れません。504Gateway Timeoutが表示されます - 名無しさん (2007年03月20日 13時43分05秒)
  • すみません。HDDが壊れて消えました。 - あき (2007年03月21日 01時22分56秒)
  • どこかのサイトでこのプラグインを使っていませんか? - ゆう (2007年04月13日 11時49分09秒)
  • オプション e で、フォルダ初期開閉 @@ の部分しか表示されないのは仕様でしょうか。 最初から全てオープンさせておきたいのですが。。 - 仕様? (2007年04月13日 16時25分43秒)
  • 作者です。ちょっと自信がないのですが、「o」オプションを指定してみて下さい。基本的に私は「v」「o」「e」全オプションを指定して使ってました。 - あき (2007年04月13日 16時59分49秒)
  • v , o , e 使っても、「オプション e で、フォルダ初期開閉 @@ の部分しか表示されないのは仕様」です。 - ゆう (2007年05月11日 17時01分51秒)
  • IE6では正常に表示されましたが、Iceweasel2.0.0ではリンクの階層表示が三段目以降は同じところに表示されてしまうようです。もしかしてブラウザの挙動の違いなのでしょうか? - 犬山ぽち丸 (2007年06月24日 00時08分15秒)
  • ↑の事について訂正です。設置した直後は↑の症状が出たのですが、その後普通に表示されました。 - 犬山ぽち丸 (2007年06月24日 23時49分49秒)
  • お世話になっています。まことと申します。以下雑談掲示板にのっけましたがこちらのほうが適切とのことで投稿します。
naviviewプラグインなるものを見つけ、早速インストールして動作確認をしておりましたが。
テスト用のPagetreeページが不要になったため削除したところ。
「Modification of non-creatable array value attempted, subscript -1 at plugin/naviview/Naviview.pm line 298.」と表示され、
そのfarmでは一切なにもできなくなってしまいました。
おそらくは「naviview Pagetree,v,o,e」がMenuに組み込まれている状態でPagetreeを削除したためnaviviewプラグインがエラーで終了しているものと思いますが。
以下条件によりFarm削除し一から作り直す以外、お手上げ状態です。
・Apacheのプロセスアカウントはnobody
・与えられているアカウントはnobody以外
・rootのパスワードは開示してもらえない
・与えられているアカウントにてプラグイン設置は可能であった
そのFarmではいろいろページを作成しておりできるだけ一から作成しなおすことは避けたい状況です。
よって現在の使用できないFarmのMenuページのnaviviewプラグインが動作している以上何もできません。
以下対応が考えられます。
・naviviewプラグインをOS側操作によって無効にする
 -> plugin/naviviewディレクトリの削除で可能?(親Farmへの影響が出そうで怖く試すことが出来ていませんが・・・)
・対象FarmのMenuページをOS側操作によって削除
 -> 与えられているアカウントでの削除は不可でした。
・Pagetreeページをbackup/<FARMディレクトリ>より復活させる
 -> ディレクトリへの書き込み権限がないため不可でした。
上記状況の中でどなたか復活させることができた方法があればご教示ください。
また、perlの知識はないですがnaviviewプラグインのここを直せば、
存在しないpagetreeページを指定している場合でもFarmの表示はこけない等を教えていただけると助かります。
以上よろしくお願いします。
  • 自己レスです。plugin/naviviewディレクトリの削除した後、エラーは出ますがプラグイン設定画面で保存することで復活できました - まこと (2008年01月16日 23時23分43秒)
  • サンプルページが見えません。別のページもあれば、よろしくお願いいたします。 - 宇賀 (2009年12月10日 22時23分49秒)
  • サンプルになるかもしれないので - 似非家 (2011年07月21日 15時06分57秒)
  • 間違ってエンターしちゃいましたhttp://agee.essaya.net/wiki.cgi?page=FrontPage参考になればご覧ください - 似非家 (2011年07月21日 15時08分05秒)
  • 助けでください。昨日からWikiをやりはじめ、本プラグインを使用したく試したところ、下記エラーがでました。原因はなんなのでしょうか? Modification of non-creatable array value attempted, subscript -1 at plugin/naviview/Naviview.pm line 298. 本プラグインの使用方法が間違っているかもしれないので、出来るだけ丁寧に教えて頂けると嬉しいです。 - Dai (2013年01月24日 10時07分29秒)
  • 多分、「ページツリーページ(デフォルト名:Pagetree)」を作成されていないことが原因だと思います。ページが見つからない場合でも動作するように以下の修正を行ってください。 - KG (2013年01月24日 22時20分37秒)
--- plugin\naviview\Naviview.pm.rev06	2005-07-20 12:55:24.000000000 +0900
+++ plugin\naviview\Naviview.pm	2013-01-24 22:15:26.000000000 +0900
@@ -240,12 +240,15 @@
           $link_name = "?page=$url_encode_name";
         }
       }
       $print_str .= "  menu_text +=\"$current$disp_head$icon_kind#$page_disp_name[$i]#$link_name;;\";\n";
     }
   }
+  else {
+    return $wiki->process_wiki("<<ページが存在しません。>>"."[[".$categories."]]");
+  }
 
   my @print_str = split(/\n/, $print_str);
   $print_str = "";
   my ($i, $j, $k);
   my ($indent_0, $caption_0, $indent_1, $caption_1) = (0, 0, undef, undef);
   my @print_str2;
  • パッチ取り込み、BODYタグ削除を行った naviview_rev07.zip(434) を添付しました。 - KG (2013年01月28日 16時27分20秒)
  • >>あきさん - Dai (2013年02月04日 11時56分00秒)
  • >>KG 早速の対応ありがとうございます。アップしていただいたファイルを使用した所、上記エラーはでなくなりましたが、「ページが存在しません Open_mode?」と表示 - Dai (2013年02月04日 11時57分23秒)
  • されました。これは、設定が間違っているのでしょうか? 私の行った設定は下記の通りです。抜けている点があれば教えてください。1)ファイルをDLする。2)Plugin, - Dai (2013年02月04日 11時58分45秒)
  • themeフォルダにデータを保存。3) - Dai (2013年02月04日 11時59分48秒)
  • themeフォルダにデータを保存。3) - Dai (2013年02月04日 11時59分53秒)
  • スタイル設定のユーザ定義スタイルの一番下に【a.open { cursor:hand;} 】を追記。4)管理設定で本プラグインにチェックを入れる。5)新規ページでtreepageを作成し「【使用方法】内の階層を記載する。 6)サイドバーなど使用したいところに、【{{naviview pagetree, disp_direction, init_open, open_mode}}】を記載する。  このような方法で設定はあっていますか?  間違っている場合細かく教えてほしいです。 - Dai (2013年02月04日 13時07分38秒)
  • 【{{naviview treepage, v, o, e}}】と記述してください。上記の使用方法に記載のある書式はそのまま転記しても駄目です。パラメータの説明があるように disp_direction は指定したい場合は "v" と記述、init_open は初期表示でツリーを展開したい場合に "o" と記述、open_mode は・・・ともう分かりますね。また、パラメータ部1つ目はツリー情報を記載したページ名になるはずです。Daiさんの例ですと、ページ名に treepage を指定しなければなりません。 - KG (2013年02月04日 20時25分16秒)
  • >>KGさん ありがとうございます。無事できました。 もう一つ教えてください。Menuに上記パラメータを二つ記載する事は可能ですか?【{{naviview treepage, v, o, e}}】【{{naviview helptree, v, o, e}}】みたいに複数のTreeをつかいたいのですが・・・ - Dai (2013年02月05日 19時52分20秒)
  • 現在の仕様では複数同時に使用することができません。 - KG (2013年02月06日 14時08分13秒)
  • 仕様は若干異なりますが、レイアウトプラグインを使用したツリービュー表示テンプレートを作成しました。Wiki書式のリスト項目をツリー表示に変換するような仕様です。ページ内に複数記述することもでき、第一階層は展開済みで、オプションにて第二階層以降を展開表示するかどうかの指定ができます。画像等は使用しておりませんが、表示方法の変更が必要な場合はテンプレートをカスタマイズすることで対応できると思います。 - KG (2013年02月20日 13時46分46秒)
  • ↑補足、WIKI形式の為、第三階層までしか対応していませんのでご了承ください。。。 - KG (2013年02月20日 13時57分28秒)
  • 色々教えて頂きありがとうございます。非常に助かります。一点上記テンプレートの使用法を教えて頂けませんか?色々試してみたのですが・・・テンプレート(treeview[)が見つかりません。と表示されてしまいます。。。 - Dai (2013年03月11日 13時17分38秒)
  • 私のサイトの方に回答していますので参照ください。 - KG (2013年03月11日 16時46分17秒)
  • はじめまして。当プラグインを利用して、ファイラーとしてエクスプローラーのような使い方を検討しています。つまり、親フォルダ名はただの見出しで、フォルダを展開するのみ。(利用者が迷わないように、見出しもアイコンクリック時と同じ動作をしてほしいのです。)Pagetree記述の際、“Wikiページ”や“外部リンク”以外の選択肢として“見出し”を追加することは可能でしょうか? - TOMMY (2013年06月05日 13時52分37秒)
  • とりあえず、動作すると思われる修正案ですが・・・、Pagetree での記述方法は 外部リンクとしてリンク先を空にすればいいです([見出し|] のように | の後ろを空)。 - KG (2013年06月05日 19時01分53秒)
--- plugin\naviview\Naviview.pm.rev7	2013-01-28 16:22:40.000000000 +0900
+++ plugin\naviview\Naviview.pm	2013-06-05 18:47:22.000000000 +0900
@@ -423,16 +423,24 @@
         }
 
         if(item_idx == disp_no){
           if(current){
             html_text += "<b>" + value + "</b>";
           }else{
-            html_text += "<a href='" + value2 + "'><b>" + value + "</b></a>";
+            if (value2.length == 0) {
+              html_text += "<a class='open' onClick='menu_change(" + item_idx + ")'><b>" + value + "</b></a>";
+            } else {
+              html_text += "<a href='" + value2 + "'><b>" + value + "</b></a>";
+            }
           }
         }else{
-          html_text += "<a href='" + value2 + "'>" + value + "</a>";
+          if (value2.length == 0) {
+            html_text += "<a class='open' onClick='menu_change(" + item_idx + ")'>" + value + "</a>";
+          } else {
+            html_text += "<a href='" + value2 + "'>" + value + "</a>";
+          }
         }
         html_text += "</a>";
         html_text += "</div>";
       }else{
         html_text += "<div id='item_" + item_idx +  "' style='margin-left:" + margin + "px;'>";
 
お名前: コメント: