|
||||||||
![]() |
掲示板目次 > サポート > 個々の機能(Any) |
|
|
検索結果のカスタマイズについて |
|||
| breez |
|
||||||
![]() Newbie 状態: オフライン ![]() 登録日: 2006年11月 6日 投稿数: 4 |
検索の結果では、タイトル・日付・ユーザ・件の閲覧の項目が表示されますが、タイトルだけの表示に変更は可能でしょうか?
フォルダー/search内のテンプレートを探しましたが項目ごとの変更ができないようでしたので、変更方法あるいはドキュメントの場所がれば教えて下さい。よろしくお願いいたします。 |
||||||
|
|||||||
| kino |
|
||||||
![]() 管理者 ![]() 状態: オフライン ![]() 登録日: 2005年12月30日 投稿数: 566 |
木下です。
投稿者: breez 検索の結果では、タイトル・日付・ユーザ・件の閲覧の項目が表示されますが、タイトルだけの表示に変更は可能でしょうか? system/classes/search.class.php の中で展開されているのですが プラグインによってどの位置にタイトルが来るか限定できないので タイトルだけを検索結果として返すプラグインを作成しそのプラグインだけを検索対象とする検索ページを作成したほうが良さそうです。 木下敏夫 http://www.tktools.jp/ http://okusama-shop.com/ |
||||||
|
|||||||
| Ivy |
|
||||||
![]() 管理者 ![]() 状態: オフライン ![]() 登録日: 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 |
|
||||||
![]() 管理者 ![]() 状態: オフライン ![]() 登録日: 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 |
|
||||||
![]() Newbie 状態: オフライン ![]() 登録日: 2006年11月 6日 投稿数: 4 |
木下さん・Ivyさん早速の返答ありがとうございます。
テンプレートでも行をまとめたものでしたので、 search.class.phpに入れなければ、ならないのですね。 早速やってみます。 ありがとうございました。 |
||||||
|
|||||||
| 内容生成: 0.29 秒 |
|
|
|