gforge-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gforge-commits] gforge/www/search/include/engines GroupSearchEngine.cla


From: gsmet
Subject: [Gforge-commits] gforge/www/search/include/engines GroupSearchEngine.class, NONE, 1.1 ForumSearchEngine.class, NONE, 1.1 SearchEngine.class, NONE, 1.1 ArtifactSearchEngine.class, NONE, 1.1
Date: Sat, 16 Oct 2004 11:36:35 -0500

Update of /cvsroot/gforge/gforge/www/search/include/engines
In directory db.perdue.net:/tmp/cvs-serv25456/www/search/include/engines

Added Files:
        GroupSearchEngine.class ForumSearchEngine.class 
        SearchEngine.class ArtifactSearchEngine.class 
Log Message:
Search engine reorganisation

--- NEW FILE: GroupSearchEngine.class ---
<?php
/**
 * GForge Search Engine
 *
 * Copyright 2004 (c) Guillaume Smet
 *
 * http://gforge.org
 *
 * @version $Id: GroupSearchEngine.class,v 1.1 2004/10/16 16:36:32 gsmet Exp $
 */

require_once('www/search/include/engines/SearchEngine.class');

class GroupSearchEngine extends SearchEngine {
        var $Group;
        
        function GroupSearchEngine($type, $rendererClassName, $label) {
                $this->SearchEngine($type, $rendererClassName, $label);
        }
        
        function isAvailable($parameters) {
                if(isset($parameters[SEARCH__PARAMETER_GROUP_ID]) && 
$parameters[SEARCH__PARAMETER_GROUP_ID]) {
                        $Group =& 
group_get_object($parameters[SEARCH__PARAMETER_GROUP_ID]);
                        if($Group && is_object($Group) && !$Group->isError()) {
                                $this->Group =& $Group;
                                return true;
                        }
                }
                return false;
        }
        
        function & getSearchRenderer($words, $offset, $exact, $parameters) {
                $this->includeSearchRenderer();
                $rendererClassName = $this->rendererClassName;
                $renderer = new $rendererClassName($words, $offset, $exact, 
$parameters[SEARCH__PARAMETER_GROUP_ID]);
                return $renderer;
        }
}
--- NEW FILE: ForumSearchEngine.class ---
<?php
/**
 * GForge Search Engine
 *
 * Copyright 2004 (c) Guillaume Smet
 *
 * http://gforge.org
 *
 * @version $Id: ForumSearchEngine.class,v 1.1 2004/10/16 16:36:32 gsmet Exp $
 */

require_once('www/search/include/engines/GroupSearchEngine.class');

class ForumSearchEngine extends GroupSearchEngine {
        var $ath;
        
        function ForumSearchEngine() {
                global $Language;
                $this->GroupSearchEngine(SEARCH__TYPE_IS_FORUM, 
'ForumHtmlSearchRenderer', $Language->getText('searchbox','forum'));
        }
        
        function isAvailable($parameters) {
                if(parent::isAvailable($parameters) && 
isset($parameters[SEARCH__PARAMETER_FORUM_ID]) && 
$parameters[SEARCH__PARAMETER_FORUM_ID]) {
                        return true;
                }
                return false;
        }
        
        function & getSearchRenderer($words, $offset, $exact, $parameters) {
                $this->includeSearchRenderer();
                $rendererClassName = $this->rendererClassName;
                $renderer = new $rendererClassName($words, $offset, $exact, 
$parameters[SEARCH__PARAMETER_GROUP_ID], 
$parameters[SEARCH__PARAMETER_FORUM_ID]);
                return $renderer;
        }
}
--- NEW FILE: SearchEngine.class ---
<?php
/**
 * GForge Search Engine
 *
 * Copyright 2004 (c) Guillaume Smet
 *
 * http://gforge.org
 *
 * @version $Id: SearchEngine.class,v 1.1 2004/10/16 16:36:32 gsmet Exp $
 */

class SearchEngine {
        var $type;
        var $rendererClassName;
        var $label;
        
        function SearchEngine($type, $rendererClassName, $label) {
                $this->type = $type;
                $this->rendererClassName = $rendererClassName;
                $this->label = $label;
        }
        
        function getType() {
                return $this->type;
        }
        
        function getLabel($parameters) {
                return $this->label;
        }
        
        function isAvailable($parameters) {
                return true;
        }
        
        function includeSearchRenderer() {
                
require_once('www/search/include/renderers/'.$this->rendererClassName.'.class');
        }
        
        function & getSearchRenderer($words, $offset, $exact) {
                $this->includeSearchRenderer();
                $rendererClassName = $this->rendererClassName;
                $renderer = new $rendererClassName($words, $offset, $exact);
                return $renderer;
        }
}
--- NEW FILE: ArtifactSearchEngine.class ---
<?php
/**
 * GForge Search Engine
 *
 * Copyright 2004 (c) Guillaume Smet
 *
 * http://gforge.org
 *
 * @version $Id: ArtifactSearchEngine.class,v 1.1 2004/10/16 16:36:32 gsmet Exp 
$
 */

require_once('www/search/include/engines/GroupSearchEngine.class');
require_once('www/tracker/include/ArtifactTypeHtml.class');

class ArtifactSearchEngine extends GroupSearchEngine {
        var $ath;
        
        function ArtifactSearchEngine() {
                $this->type = SEARCH__TYPE_IS_ARTIFACT;
                $this->rendererClassName = 'ArtifactHtmlSearchRenderer';
        }
        
        function getLabel($parameters) {
                return $this->ath->getName();
        }
        
        function isAvailable($parameters) {
                if(parent::isAvailable($parameters) && 
isset($parameters[SEARCH__PARAMETER_ARTIFACT_ID]) && 
$parameters[SEARCH__PARAMETER_ARTIFACT_ID]) {
                        $ath = new ArtifactTypeHtml($this->Group, 
$parameters[SEARCH__PARAMETER_ARTIFACT_ID]);
                        if($ath && is_object($ath) && !$ath->isError()) {
                                $this->ath =& $ath;
                                return true;
                        }
                }
                return false;
        }
        
        function & getSearchRenderer($words, $offset, $exact, $parameters) {
                $this->includeSearchRenderer();
                $rendererClassName = $this->rendererClassName;
                $renderer = new $rendererClassName($words, $offset, $exact, 
$parameters[SEARCH__PARAMETER_GROUP_ID], 
$parameters[SEARCH__PARAMETER_ARTIFACT_ID]);
                return $renderer;
        }
}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]