openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 2cef736d67c3fb3ae2a0e790a6897d6fdf9ea460
parent ff7c44ab9c9df2fdc6c7e60024d7f79dee8c0b49
Author: dankert <devnull@localhost>
Date:   Tue,  8 May 2007 21:21:58 +0200

Erweiterung der Suche um die Schnellsuche.

Diffstat:
actionClasses/SearchAction.class.php | 211+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
actionClasses/SearchAction.ini.php | 26++++++++++++++++++++++++++
2 files changed, 162 insertions(+), 75 deletions(-)

diff --git a/actionClasses/SearchAction.class.php b/actionClasses/SearchAction.class.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.4 2004-12-20 20:27:13 dankert +// Revision 1.5 2007-05-08 19:21:58 dankert +// Erweiterung der Suche um die Schnellsuche. +// +// Revision 1.4 2004/12/20 20:27:13 dankert // Aktuelle Userid setzen // // Revision 1.3 2004/11/28 23:55:49 dankert @@ -62,88 +65,41 @@ class SearchAction extends Action * Durchf?hren der Suche * und Anzeige der Ergebnisse */ - function search() + function searchcontent() { global $conf_php; $listObjectIds = array(); $listTemplateIds = array(); - switch( $this->getRequestVar('searchtype') ) + switch( $this->getRequestVar('type') ) { - case 'prop': - - switch( $this->getRequestVar('type') ) - { - case 'id': - $o = new Object(); - if ( $o->isObjectId($this->getRequestVar('id')) ) - $listObjectIds[] = $this->getRequestVar('id'); - break; - - case 'filename': - $o = new Object(); - $listObjectIds = $o->getObjectIdsByFilename( $this->getRequestVar('filename') ); - break; - - case 'name': - $o = new Object(); - $listObjectIds = $o->getObjectIdsByName( $this->getRequestVar('name') ); - break; - - case 'desc': - $o = new Object(); - $listObjectIds = $o->getObjectIdsByDescription( $this->getRequestVar('desc') ); - break; - - case 'create_user': - $o = new Object(); - $listObjectIds = $o->getObjectIdsByCreateUserId( $this->getRequestVar('create_userid') ); - break; - - case 'lastchange_user': - $o = new Object(); - $listObjectIds = $o->getObjectIdsByLastChangeUserId( $this->getRequestVar('lastchange_userid') ); - break; - - case 'extension': - $f = new File(); - $listObjectIds = $f->getObjectIdsByExtension( $this->getRequestVar('extension') ); - break; - } - - break; - - - case 'content': - - switch( $this->getRequestVar('type') ) - { - case 'value': - $e = new Value(); - $listObjectIds = $e->getObjectIdsByValue( $this->getRequestVar('text') ); - - $template = new Template(); - $listTemplateIds = $template->getTemplateIdsByValue( $this->getRequestVar('text') ); - break; + case 'value': + $e = new Value(); + $listObjectIds = $e->getObjectIdsByValue( $this->getRequestVar('text') ); - case 'lastchange_user': - $e = new Value(); - $listObjectIds = $e->getObjectIdsByLastChangeUserId( $this->getRequestVar('lastchange_userid') ); - break; - } + $template = new Template(); + $listTemplateIds = $template->getTemplateIdsByValue( $this->getRequestVar('text') ); break; - - default: - // Fallback: - // Dialog "Suche nach Eigenschaft" anzeigen. - $this->callSubAction( 'prop' ); - exit; + case 'lastchange_user': + $e = new Value(); + $listObjectIds = $e->getObjectIdsByLastChangeUserId( $this->getRequestVar('lastchange_userid') ); + break; } + $this->explainResult( $listObjectIds, $listTemplateIds ); + } + + + + /** + * + */ + function explainResult( $listObjectIds, $listTemplateIds ) + { $resultList = array(); foreach( $listObjectIds as $objectid ) @@ -167,14 +123,119 @@ class SearchAction extends Action $t->load(); $resultList['t'.$templateid] = array(); $resultList['t'.$templateid]['url' ] = Html::url('main','template',$templateid); - $resultList['t'.$templateid]['type'] = 'tpl'; + $resultList['t'.$templateid]['type'] = 'template'; $resultList['t'.$templateid]['name'] = $t->name; $resultList['t'.$templateid]['desc'] = lang('GLOBAL_NO_DESCRIPTION_AVAILABLE'); } $this->setTemplateVar( 'result',$resultList ); + } + + + /** + * Durchf?hren der Suche + * und Anzeige der Ergebnisse + */ + function searchprop() + { + global $conf_php; + + $listObjectIds = array(); + $listTemplateIds = array(); + + switch( $this->getRequestVar('type') ) + { + case 'id': + $o = new Object(); + if ( $o->isObjectId($this->getRequestVar('text')) ) + $listObjectIds[] = $this->getRequestVar('text'); + break; + + case 'filename': + $o = new Object(); + $listObjectIds = $o->getObjectIdsByFilename( $this->getRequestVar('text') ); + + $f = new File(); + $listObjectIds += $f->getObjectIdsByExtension( $this->getRequestVar('text') ); + break; + + case 'name': + $o = new Object(); + $listObjectIds = $o->getObjectIdsByName( $this->getRequestVar('text') ); + break; + + case 'description': + $o = new Object(); + $listObjectIds = $o->getObjectIdsByDescription( $this->getRequestVar('text') ); + break; + + case 'create_user': + $o = new Object(); + $listObjectIds = $o->getObjectIdsByCreateUserId( $this->getRequestVar('userid') ); + break; + + case 'lastchange_user': + $o = new Object(); + $listObjectIds = $o->getObjectIdsByLastChangeUserId( $this->getRequestVar('userid') ); + break; + + default: + die('search method unknown: '.$this->getRequestVar('type') ); + } + + $this->explainResult( $listObjectIds, $listTemplateIds ); + } + + + /** + * Durchf?hren der Suche + * und Anzeige der Ergebnisse + */ + function quicksearch() + { + global $conf; + + $listObjectIds = array(); + $listTemplateIds = array(); + + $text = $this->getRequestVar('search'); + + $o = new Object(); + if ( $o->isObjectId($this->getRequestVar( $text )) ) + $listObjectIds[] = $this->getRequestVar( $text ); + + if ( $conf['search']['quicksearch']['search_name'] ) + { + $o = new Object(); + $listObjectIds += $o->getObjectIdsByName( $text ); + } - $this->forward( 'search_result' ); + if ( $conf['search']['quicksearch']['search_description'] ) + { + $o = new Object(); + $listObjectIds += $o->getObjectIdsByDescription( $text ); + } + + if ( $conf['search']['quicksearch']['search_filename'] ) + { + $o = new Object(); + $listObjectIds += $o->getObjectIdsByFilename( $text ); + + $f = new File(); + $listObjectIds += $f->getObjectIdsByExtension( $text ); + } + + // Inhalte durchsuchen + if ( $conf['search']['quicksearch']['search_content'] ) + { + $e = new Value(); + $listObjectIds += $e->getObjectIdsByValue( $text ); + + $template = new Template(); + $listTemplateIds += $template->getTemplateIdsByValue( $text ); + } + + $this->explainResult( $listObjectIds, $listTemplateIds ); } @@ -183,8 +244,6 @@ class SearchAction extends Action $user = Session::getUser(); $this->setTemplateVar( 'users' ,User::listAll() ); $this->setTemplateVar( 'act_userid',$user->userid ); - - $this->forward( 'search_prop' ); } @@ -193,8 +252,10 @@ class SearchAction extends Action $user = Session::getUser(); $this->setTemplateVar( 'users' ,User::listAll() ); $this->setTemplateVar( 'act_userid',$user->userid ); - - $this->forward( 'search_content' ); + } + + function result() + { } } diff --git a/actionClasses/SearchAction.ini.php b/actionClasses/SearchAction.ini.php @@ -1,3 +1,29 @@ [default] goto=show + +[quicksearch] +menu=prop +goto=result + +[result] +menu=prop + +[prop] +menu=prop +target=searchprop + +[content] +menu=content +target=searchcontent + +[searchcontent] +goto=result +menu=content +[searchprop] +goto=result +menu=prop + +[menu] +prop=prop +content=content