Subversion-Projekte lars-tiefland.prado

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php
/*
 * Created on 7/05/2006
 */

class Search extends TPage
{
        public function onLoad($param)
        {
                if(!$this->IsPostBack && strlen($text = $this->search->getText()) > 0)
                {
                        $quickstart = $this->getApplication()->getModule("quickstart_search");
                        $hits_1 =  $quickstart->find($text);
                        $this->quickstart_results->setDataSource($hits_1);
                        $this->quickstart_results->dataBind();

                        $this->emptyResult->setVisible(!count($hits_1));
                }
        }

        public function highlightSearch($text)
        {
                $words = str_word_count($text, 1);
                $keys = str_word_count(strtolower($this->search->getText()),1);
                $where = 0;
                $t = count($words);
                for($i = 0; $i<$t; $i++)
                {
                        if($this->containsKeys(strtolower($words[$i]), $keys))
                        {
                                $words[$i] = '<span class="searchterm">'.$words[$i].'</span>';
                                $where = $i;
                                break;
                        }
                }

                $min =  $where - 15 < 0 ? 0 : $where - 15;
                $max =  $where + 15 > $t ? $t : $where + 15;
                $subtext = array_splice($words, $min, $max-$min);
                $prefix = $min == 0 ? '' : '...';
                $suffix = $max == $t ? '' : '...';
                return $prefix.implode(' ', $subtext).$suffix;
        }

        protected function containsKeys($word, $keys)
        {
                foreach($keys as $key)
                {
                        if(is_int(strpos($word, $key)))
                                return true;
                }
                return false;
        }
}

?>