質問箱/3246

カテゴリ
サマリMenuBarにページの一覧を表示したい
バージョン1.4.6
投稿者カッケ?
状態完了
投稿日2005-11-06 (日) 15:19:19

質問

基本的な使い方だと思うのですが、よく意味が理解できないので質問させてください。

現在左のmenubarにサイトメニューという見出しを作って、そこの下にメニューの項目を作って行こうと考えています。

そこでmenubar内のサイトメニューという見出しの下に項目?ページを作ろうと思って、トップから新規に作成を行い記事を書くのですが、すべて「最新の20件」という所に記事が入ってしまします。

これは自分でmenubarに直接一回,一回書き込まないといけないのでしょうか?ちなみに現在はサイトメニューと書いてある見出しの下には

'TOP' には、下位層のページがありません。

という表示が出ているだけです。 どなたか使い方を教えていただけ無いでしょうか? 宜しくお願いします。

回答

  • どのようなことを行おうとしているのかわかりませんが、プラグインを使う場合でも個別に追加する場合でも MenuBarを編集しなければ勝手に作られることはありません。「最新の20件」というのはその名の通り、編集されたページを新しい順に20件表示するものです。(これもMenuBarにそうするように書いてあるので表示されているわけです。単語検索でMenuBarを調べてみるといろいろわかると思います。またサマリには質問内容がわかるように書きましょう。 -- 2005-11-06 (日) 16:27:00
  • でも、僕もMenubarの使い方がよく分からないです…。今、新規に作ったページを左側のMenubarに「メニューとして」表示させたい場合にはどうすればいいんでしょうか?何もしないと「最新の20件]に表示されるだけなんです。 -- Aki? 2005-11-10 (木) 10:49:52
  • 新規にページを作成した場合はその新規のページを左側のメニューに表示させる為に自分でMenubarを編集してメニューを追加するのでしょうか…? -- Aki? 2005-11-10 (木) 10:54:52
  • MenuBarというページのソースを見てみれば分かると思います。 -- 2005-11-10 (木) 11:01:03
  • ちなみに「MenuBar」は大文字小文字の区別がされますので、「menubar」や「Menubar」では編集することができても、左側に反映されませんよ。 -- 774? 2005-11-10 (木) 12:58:07
  • 先程質問させて頂いた者です。PukiWiki1.4.6で[http://wiki.na7.info/]ここまで作ったのですが、これからコンテンツを追加するとした場合に、新規にページを追加した後、左側のMenuBarにその追加したページをメニューとして追加するには、自分でMenuBarを編集するという事でよろしいのでしょうか?要は新規にページを作った場合に、自動的にMenuBarに追加されてゆく仕組みはないのでしょうか?お手数をおかけします… -- Aki? 2005-11-10 (木) 15:35:19
    • 自動で追加はたぶんないと思います。ので、↓みたいなの作ってみました。(あまりテストはしていませんので、自己責任でお願いします。*1)list.inc.phpに追加してください。#listで一覧が呼び出されます。ページ数が多くない時は有効かもしれません。 -- 0? 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? 2005-11-10 (木) 17:31:33
  • 素早い返信ありがとうございます。組み込んでみました!すごいですね!(^.^)使い方はあってるでしょうか… -- Aki? 2005-11-10 (木) 17:44:13
  • 合ってます :) ただ、初期状態のページがリストに出ることは想定してませんでした (^^; *2 ちょっと追加行です↓。トップにしかメニューが出ないようになってるみたいなので不要かもしれませんが…。 -- 0? 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? 2005-11-10 (木) 18:47:53
  • “pukiwiki.ini.php”の“$non_list”に追加でも良いんですが、このプラグインのみ表示しないようにしたい場合はこの方法で。*3 -- 0? 2005-11-10 (木) 18:48:08
  • 差分ファイル(diff)*4の書き方の一種です。“+” が追加された行、“-”が削除された行という意味です。(今回“-”はありませんが)PukiWikiのサイトを見ていると良く見かけることになると思いますよ :) -- 0? 2005-11-10 (木) 18:54:09
  • ありがとうございます。+記号の部分を追加してみました。いい感じです(^.^)。 -- Aki? 2005-11-10 (木) 18:55:23
  • 質問箱/4503 -- 2010-12-28 (火) 01:47:51

*1 一応、PHP5, 4.4, 4.3では動きました。
*2 初期ページで残っているのは:configくらい
*3 関数の中に書き加えていくのは行儀が悪いですが
*4 ファイルの変更点を書き出したもの

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-12-28 (火) 01:48:02
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.229 sec.

OSDN