単語検索の結果、ページ名+最初の見出を表示する

  • ページ: BugTrack
  • 投稿者: tot?
  • 優先順位: 普通
  • 状態: 完了
  • カテゴリー: 本体新機能
  • 投稿日: 2003-07-10 (木) 23:20:56
  • バージョン: 1.4rc3

メッセージ

検索結果の表示をページ名にプラスして、そのページの最初の見出しも表示できれば内容まで分かって便利になると思います。 検索時にページ内容を読んでいるので負担も少ないような気がします。 社内で一顧客の情報を一ページにまとめる予定です、ページ名は顧客コード(数字で7桁)にするつもりです、そうすると検索時に顧客コード(ページ名)しか表示されず効率が悪いという問題が発生します。 理由はともかく一般的な機能としても便利になると思います。


function do_search($word,$type='AND',$non_format=FALSE)
(中略)
	$_pages = get_existpages();
	$pages = array();
+	$page_heading = array();
	
	foreach ($_pages as $page)
	{
(中略)
		if ($b_match)
		{
			$pages[$page] = get_filetime($page);
+			array_shift($source);
+			$tmp = array_shift( preg_grep("/^\*{1,3}/",$source) );
+			make_heading($tmp);
+			$page_heading[$page] = $tmp;
		}
	}
(中略)
	$retval = "<ul>\n";
	foreach ($pages as $page=>$time)
	{
		$r_page = rawurlencode($page);
		$s_page = htmlspecialchars($page);
		$passage = get_passage($time);
+		$heading = $page_heading[$page];
+		$retval .= " <li><a href=\"$script?cmd=read&amp;page=$r_page&amp;word=$r_word\">$s_page</a>$passage&nbsp;$heading</li>\n";
-		$retval .= " <li><a href=\"$script?cmd=read&amp;page=$r_page&amp;word=$r_word\">$s_page</a>$passage</li>\n";
	}
	$retval .= "</ul>\n";
  • func.php に上記修正を加えれば実現できると思います。 -- にぶんのに 2003-07-27 (日) 11:43:19
  • ちょっとあきらめていたので、気づくのが遅くなり申し訳ございませんでした。修正し実行し検証できました。思いどうりになりました。便利に使わせてもらいます。ありがとうございました。最後に検索結果のイメージサンプルをつけておきます。
    これらのキーワードがハイライトされています: XXXX
    ----------------------------------------------
    ・147191(31d) 有限会社 田中呉服店
    ・149086(31d) 久保田 株式会社
    ・111914(31d) 物流通新聞社
    ・116861(31d) 株式会社 高岡
    ・117701(31d) 株式会社 双葉事務所
    ・118916(31d) 有限会社 ウエスト
    ・119131(31d) 株式会社 こんぴか
    ・161111(31d) 畑田 株式会社
    ・161819(31d) 三田商事株式会社
    ・163171(31d) 大阪ゴルフ商店
    ・163418(31d) 三和金物 株式会社
    XXXX のすべてを含むページは 320 ページ中、 33 ページ見つかりました。

    最初の数字は、ページ名=顧客コードです。XXXXは検索内容です。 本当にありがとうございました。-- tot? 2003-08-07 (木) 16:05:50

  • この修正をV1.4.7でやろうとしたのですが、V1.4.7のfunc.phpは上記に記載されているものとは微妙に違っており、どのように修正したらよいのかわかりません。どなたか教えていただけると助かります。よろしくお願いします。 -- メイプル? 2007-04-19 (木) 16:20:51
  • 多分これで大丈夫だと思います。 -- 2007-04-28 (土) 11:33:07
    • func.php, v 1.81 までの場合
      function do_search( (中略) )
      {
      
      (中略)
      
      	$retval = '<ul>' . "\n";
      	foreach ($pages as $page=>$time)
      	{
      		$r_page = rawurlencode($page);
      		$s_page = htmlspecialchars($page);
      		$passage = get_passage($time);
      +		$heading = array_shift( preg_grep("/^\*{1,3}/", get_source($page)) );
      +		make_heading($heading);
      		$retval .= ' <li><a href="' . $script . '?cmd=read&amp;page=' .
      			$r_page . '&amp;word=' . $r_word . '">' . $s_page .
      -			'</a>' . $passage . '</li>' . "\n";
      +			'</a>' . $passage . '&nbsp;' . $heading . '</li>' . "\n";
      	}
      	$retval .= '</ul>' . "\n";
    • func.php,v 1.82 から v 1.87 までの場合
      function do_search( (中略) )
      {
      
      (中略)
      
      	$retval = '<ul>' . "\n";
      	foreach ($pages as $page=>$time)
      	{
      		$r_page = rawurlencode($page);
      		$s_page = htmlspecialchars($page);
      		$passage = $show_passage ? ' ' . get_passage(get_filetime($page)) : '';
      		if ($search_word_color) {
      			$uri =  $script . '?' . 'cmd=read&amp;page=' . $r_page . '&amp;word=' . $r_word;
      		} else {
      			$uri =  $script . '?' . $r_page;
      		}
      +		$heading = array_shift( preg_grep("/^\*{1,3}/", get_source($page)) );
      +		make_heading($heading);
      -		$retval .= ' <li><a href="' . $uri . '">' . $s_page . '</a>' . $passage . '</li>' . "\n";
      +		$retval .= ' <li><a href="' . $uri . '">' . $s_page . '</a>' . $passage . '&nbsp;' . $heading . '</li>' . "\n";
      	}
      	$retval .= '</ul>' . "\n";
  • 「func.php, v 1.81 までの場合」のやり方でできました!教えてくださった方、ありがとうございました。 -- メイプル? 2007-05-17 (木) 19:09:22

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-05-17 (木) 19:09:22
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.203 sec.

OSDN