質問箱/3246

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

質問

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

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

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

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

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

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

回答

// 一覧取得
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;
	}
}
				$menubar,
+				'SandBox'  // 同名のファイルのみ一覧に表示しない
			);
+		$non_list2 = array(// 正規表現
+			'^InterWiki',
+			'^PukiWiki\/1\.4'
+		);
+		$non_list = '(' . implode('|', $non_list2) . '|' . $non_list . ')';
		$pages = get_existpages();

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

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-23 (木) 19:14:24
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.420 sec.

SourceForge