**[[質問箱3/246]] [#id3c93e9] #author("2018-03-11T16:06:42+09:00;2010-12-28T01:48:02+09:00","","") **[[質問箱/3246]] [#id3c93e9] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|MenuBarにページの一覧を表示したい| |~バージョン|1.4.6| |~投稿者|[[カッケ]]| |~状態|完了| |~投稿日|&new{2005-11-06 (日) 15:19:19};| ***質問 [#e91c2b8d] 基本的な使い方だと思うのですが、よく意味が理解できないので質問させてください。 現在左のmenubarにサイトメニューという見出しを作って、そこの下にメニューの項目を作って行こうと考えています。 そこでmenubar内のサイトメニューという見出しの下に項目?ページを作ろうと思って、トップから新規に作成を行い記事を書くのですが、すべて「最新の20件」という所に記事が入ってしまします。 これは自分でmenubarに直接一回,一回書き込まないといけないのでしょうか?ちなみに現在はサイトメニューと書いてある見出しの下には 'TOP' には、下位層のページがありません。 という表示が出ているだけです。 どなたか使い方を教えていただけ無いでしょうか? 宜しくお願いします。 ***回答 [#i874a7a1] - どのようなことを行おうとしているのかわかりませんが、プラグインを使う場合でも個別に追加する場合でも MenuBarを編集しなければ勝手に作られることはありません。「最新の20件」というのはその名の通り、編集されたページを新しい順に20件表示するものです。(これもMenuBarにそうするように書いてあるので表示されているわけです。単語検索でMenuBarを調べてみるといろいろわかると思います。またサマリには質問内容がわかるように書きましょう。 -- &new{2005-11-06 (日) 16:27:00}; - でも、僕もMenubarの使い方がよく分からないです…。今、新規に作ったページを左側のMenubarに「メニューとして」表示させたい場合にはどうすればいいんでしょうか?何もしないと「最新の20件]に表示されるだけなんです。 -- [[Aki]] &new{2005-11-10 (木) 10:49:52}; - 新規にページを作成した場合はその新規のページを左側のメニューに表示させる為に自分でMenubarを編集してメニューを追加するのでしょうか…? -- [[Aki]] &new{2005-11-10 (木) 10:54:52}; - [[MenuBar]]というページのソースを見てみれば分かると思います。 -- &new{2005-11-10 (木) 11:01:03}; - ちなみに「MenuBar」は大文字小文字の区別がされますので、「menubar」や「Menubar」では編集することができても、左側に反映されませんよ。 -- [[774]] &new{2005-11-10 (木) 12:58:07}; - 先程質問させて頂いた者です。PukiWiki1.4.6で[http://wiki.na7.info/]ここまで作ったのですが、これからコンテンツを追加するとした場合に、新規にページを追加した後、左側のMenuBarにその追加したページをメニューとして追加するには、自分でMenuBarを編集するという事でよろしいのでしょうか?要は新規にページを作った場合に、自動的にMenuBarに追加されてゆく仕組みはないのでしょうか?お手数をおかけします… -- [[Aki]] &new{2005-11-10 (木) 15:35:19}; -- 自動で追加は''たぶん''ないと思います。ので、↓みたいなの作ってみました。(あまりテストはしていませんので、自己責任でお願いします。((一応、PHP5, 4.4, 4.3では動きました。)))list.inc.phpに追加してください。#listで一覧が呼び出されます。ページ数が多くない時は有効かもしれません。 -- [[0]] &new{2005-11-10 (木) 17:26:33}; // 一覧取得 function plugin_list_convert() { global $non_list; global $defaultpage, $whatsnew, $whatsdeleted, $interwiki, $menubar; $list = new plugin_list_class; if ($list->r_time > $list->l_time) { $non_page = array( $defaultpage, $whatsnew, $whatsdeleted, $interwiki, $menubar ); $pages = get_existpages(); $pages = array_diff($pages, preg_grep('/' . $non_list . '/', $pages), $non_page); return $list->make($pages); } else { return $list->read(); } } class plugin_list_class { var $l_file, $l_time; // list => l_ var $r_file, $r_time; // recent => r_ function plugin_list_class() { $this->l_file = CACHE_DIR . 'list.dat'; $this->r_file = CACHE_DIR . 'recent.dat'; $this->l_time = filemtime($this->l_file);// - LOCALZONE; $this->r_time = filemtime($this->r_file);// - LOCALZONE; } function make(& $pages) { $str = '<ul>' . "\n"; foreach($pages as $page) { $str .= '<li>' . make_pagelink($page) . '</li>' . "\n"; } $str .= '</ul>'; $this->write($str); return $str; } function write($str) { $fp = fopen($this->l_file, "wb"); fwrite($fp, $str); fclose($fp); } function read() { if (file_exists($this->l_file) && is_readable($this->l_file)) { $str = ''; $fp = fopen($this->l_file, "rb"); while (! feof($fp)) { $str .= fread($fp, 8192); } fclose($fp); } else { $str = '<p>#list : error.</p>'; } return $str; } } - 少し横長ですね (^^; 横スクロールが出たらごめんなさい。(たぶん出ると思います。) -- [[0]] &new{2005-11-10 (木) 17:31:33}; - 素早い返信ありがとうございます。組み込んでみました!すごいですね!(^.^)使い方はあってるでしょうか… -- [[Aki]] &new{2005-11-10 (木) 17:44:13}; - 合ってます :) ただ、初期状態のページがリストに出ることは想定してませんでした (^^; ((初期ページで残っているのは:configくらい)) ちょっと追加行です↓。トップにしかメニューが出ないようになってるみたいなので不要かもしれませんが…。 -- [[0]] &new{2005-11-10 (木) 18:41:55}; $menubar, + 'SandBox' // 同名のファイルのみ一覧に表示しない ); + $non_list2 = array(// 正規表現 + '^InterWiki', + '^PukiWiki\/1\.4' + ); + $non_list = '(' . implode('|', $non_list2) . '|' . $non_list . ')'; $pages = get_existpages(); -- ごめんなさい。↑の意味(+記号とか…)がよくわからないのですが…、教えて頂けないでしょうか。初心者で申し訳ありません。。。 -- [[Aki]] &new{2005-11-10 (木) 18:47:53}; - “pukiwiki.ini.php”の“$non_list”に追加でも良いんですが、このプラグインのみ表示しないようにしたい場合はこの方法で。((関数の中に書き加えていくのは行儀が悪いですが)) -- [[0]] &new{2005-11-10 (木) 18:48:08}; - 差分ファイル(diff)((ファイルの変更点を書き出したもの))の書き方の一種です。“+” が追加された行、“-”が削除された行という意味です。(今回“-”はありませんが)PukiWikiのサイトを見ていると良く見かけることになると思いますよ :) -- [[0]] &new{2005-11-10 (木) 18:54:09}; - ありがとうございます。+記号の部分を追加してみました。いい感じです(^.^)。 -- [[Aki]] &new{2005-11-10 (木) 18:55:23}; - [[質問箱4/503]] -- &new{2010-12-28 (火) 01:47:51}; - [[質問箱/4503]] -- &new{2010-12-28 (火) 01:47:51}; //#comment