掲示板目次 > サポート > 個々の機能(Any) 新規投稿 返信投稿
 検索結果のカスタマイズについて
 
breez
 2006年11月 7日 10:16 JST (参照数 1928回)  
掲示板 Newbie
Newbie

状態: オフライン


登録日: 2006年11月 6日
投稿数: 4
検索の結果では、タイトル・日付・ユーザ・件の閲覧の項目が表示されますが、タイトルだけの表示に変更は可能でしょうか?

フォルダー/search内のテンプレートを探しましたが項目ごとの変更ができないようでしたので、変更方法あるいはドキュメントの場所がれば教えて下さい。よろしくお願いいたします。

 
プロフィール メール
引用して書き込む
kino
 2006年11月 7日 10:47 JST  
掲示板 管理者
管理者

状態: オフライン


登録日: 2005年12月30日
投稿数: 566
木下です。

投稿者: breez
検索の結果では、タイトル・日付・ユーザ・件の閲覧の項目が表示されますが、タイトルだけの表示に変更は可能でしょうか?


system/classes/search.class.php の中で展開されているのですが
プラグインによってどの位置にタイトルが来るか限定できないので
タイトルだけを検索結果として返すプラグインを作成しそのプラグインだけを検索対象とする検索ページを作成したほうが良さそうです。


木下敏夫 http://www.tktools.jp/ http://okusama-shop.com/
 
プロフィール メール ホームページ
引用して書き込む
Ivy
 2006年11月 7日 11:40 JST  
掲示板 管理者
管理者

状態: オフライン


登録日: 2004年1月 1日
投稿数: 4470
プラグインまでつくる必要はないのではないでしょうか。

簡単につくりたければ、検索フォームのページを、静的ページでそのままコピーしてつくって、不要な選択項目を消してしまいます。
検索結果も変えたいのなら、検索結果のテンプレートを修正して
目的のレイアウトにしてしまうというのでいかがでしょうか。

もし、もっといろんな検索アプリケーションがほしいというのであれば
標準の search.php を参考にして、search2.php
というふうに、どんどんアプリケーションをつくってみてください。
参照するテンプレートファイルも独自に設定できます。

くわしくはwikiの開発者ドキュメントのアプリケーション開発をどうぞ。
http://wiki.geeklog.jp/index.php/BegGuide

開発してカスタマイズしたい、という場合には、
wikiのカスタマイズの項目をどうぞ。

プラグイン開発はデータベースを追加してなにかしたい場合に
考えたいものですが、ちょっとハードルが高いです。

アランさんによると、プラグインにするかどうか次のように
説明されています。

--
一般的には,Geeklogのコメントエンジンを使いたい,Geeklogの検索エンジンを使いたい(つまり,プログラムのデータをGeeklogの検索機能に統合したい),あるいはGeeklogの投稿エンジンを使いたい場合は,プラグインを書かなければなりません。そうでないなら,ただコードを書けばよいのです。サイズは重要ではありません。ある大きさを超えたらプラグインにしなければならないという制限はないからです。
--

ブロックにPHPプログラムの表示結果を表示させたいのなら
phpblock関数を作成すればよいし、
基本機能に対してカスタマイズしたいのなら、
あらかじめわりあてられているCUSTOM関数を自由に
カスタマイズします。
アプリケーションを作成したいのならアプリケーション開発。geeklogのいろいろな
標準の関数を使えます。
静的ページPHPをつかえばもっとおてがるにアプリケーションに変わる、
PHPで動くページをつくれます。

簡易検索フォームを作成したいというニーズは高いので、方法を
wikiに追加しました。
 wikiドキュメント

 
プロフィール メール
引用して書き込む
kino
 2006年11月 7日 14:17 JST  
掲示板 管理者
管理者

状態: オフライン


登録日: 2005年12月30日
投稿数: 566
木下です。

検索項目を限定したりしたい場合は
検索フォームのページをコピーして不要な項目を削除でいいのですが
検索結果の1行に表示されている内容については
各プラグインがGeeklogの検索エンジンに対して検索結果として
返してきた配列の値を行として表示するしくみなので
検索結果の行の中味を変更する為には独自の検索ルーチンを作成しないとテンプレートの修正では目的のレイアウトにすることはできません。

コアファイルを弄ってもいいのであれば

system/classes/search.class.php の最後の方にある
doSearch()を

function doSearch()
{
global $_CONF;

// Verify current user can perform requested search
if (!$this->_isSearchAllowed()) {
return $this->_getAccessDeniedMessage();
}

// Start search timer
$searchtimer = new timerobject();
$searchtimer->setPercision(4);
$searchtimer->startTimer();

// Do searches
$this->story_results = $this->_searchStories();
$this->comment_results = $this->_searchComments();
$this->event_results = $this->_searchEvents();
//add custome search
$this->custome_results = $this->_searchCustome();
//

// Have plugins do their searches
list($nrows_plugins, $total_plugins, $result_plugins) = PLG_doSearch($this->_query, $this->_dateStart, $this->_dateEnd, $this->_topic, $this->_type, $this->_author, $this->_keyType, $this->_page, $this->_per_page);

// Add the core GL object search results to plugin results
$nrows_plugins += $this->story_results->num_searchresults;
$nrows_plugins += $this->comment_results->num_searchresults;
$nrows_plugins += $this->event_results->num_searchresults;
//add custome search
$nrows_plugins += $this->custome_results->num_searchresults;
//

$total_plugins += $this->story_results->num_itemssearched;
$total_plugins += $this->comment_results->num_itemssearched;
$total_plugins += $this->event_results->num_itemssearched;
//add custome search
$total_plugins += $this->custome_results->num_itemssearched;
//

// Move GL core objects to front of array
array_unshift ($result_plugins, $this->story_results,
$this->comment_results, $this->event_results);

// Searches are done, stop timer
$searchtime = $searchtimer->stopTimer();

// Format results
$retval = $this->_formatResults ($nrows_plugins, $total_plugins,
$result_plugins, $searchtime);

return $retval;
}

}

とでもして

_searchStories()を丸ごとコピーして
_searchCustome()を作成し

$row = array (''
. stripslashes ($A['title']) . '
',
$thetime[0], $profile,
COM_NumberFormat ($A['hits']));
の部分を自分の欲しい内容に書き換える。
という方法も考えられます。

バージョンアップ時等に上書きされることに注意すれば
この方法が一番簡単かも。

木下敏夫 http://www.tktools.jp/ http://okusama-shop.com/
 
プロフィール メール ホームページ
引用して書き込む
breez
 2006年11月 7日 14:27 JST  
掲示板 Newbie
Newbie

状態: オフライン


登録日: 2006年11月 6日
投稿数: 4
木下さん・Ivyさん早速の返答ありがとうございます。

テンプレートでも行をまとめたものでしたので、
search.class.phpに入れなければ、ならないのですね。
早速やってみます。

ありがとうございました。

 
プロフィール メール
引用して書き込む
内容生成: 0.29 秒
新規投稿 返信投稿


通常 通常
注目トピック 注目トピック
ロック済 ロック済
新着 新着
注目トピック 新着 注目トピック 新着
ロック済トピック 新着 ロック済トピック 新着
ゲストユーザの投稿を見る 
ゲストユーザ投稿可能 
すべてのHTMLを許可 
バッドワードをチェック