Subversion-Projekte lars-tiefland.prado

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php

class SearchPost extends BlogPage
{
        private $_posts;

        public function onInit($param)
        {
                parent::onInit($param);
                $this->_posts=$this->DataAccess->queryPosts(
                                $this->getPostFilter(),
                                '',
                                'ORDER BY create_time DESC',
                                'LIMIT '.$this->getPageOffset().','.$this->getPageSize());
        }

        private function getPostFilter()
        {
                $filter='a.status=0';
                $keywords=explode(' ',$this->Request['keyword']);
                foreach($keywords as $keyword)
                {
                        if(($keyword=$this->DataAccess->escapeString(trim($keyword)))!=='')
                                $filter.=" AND (content LIKE '%$keyword%' OR title LIKE '%$keyword%')";
                }
                return $filter;
        }

        private function getPageOffset()
        {
                if(($offset=TPropertyValue::ensureInteger($this->Request['offset']))<=0)
                        $offset=0;
                return $offset;
        }

        private function getPageSize()
        {
                if(($limit=TPropertyValue::ensureInteger($this->Request['limit']))<=0)
                        $limit=TPropertyValue::ensureInteger($this->Application->Parameters['PostPerPage']);
                return $limit;
        }

        private function formUrl($newOffset)
        {
                $gets=array();
                $gets['offset']=$newOffset;
                if($this->Request['limit']!==null)
                        $gets['limit']=$this->Request['limit'];
                if($this->Request['time']!==null)
                        $gets['time']=$this->Request['time'];
                if($this->Request['cat']!==null)
                        $gets['cat']=$this->Request['cat'];
                return $this->Service->constructUrl('Posts.ListPost',$gets);
        }

        public function onLoad($param)
        {
                parent::onLoad($param);
                $this->PostList->DataSource=$this->_posts;
                $this->PostList->dataBind();
                if($this->getPageOffset()>0)
                {
                        if(($offset=$this->getPageOffset()-$this->getPageSize())<0)
                                $offset=0;
                        $this->PrevPage->NavigateUrl=$this->formUrl($offset);
                        $this->PrevPage->Visible=true;
                }
                if(count($this->_posts)===$this->getPageSize())
                {
                        $this->NextPage->NavigateUrl=$this->formUrl($this->getPageOffset()+$this->getPageSize());
                        $this->NextPage->Visible=true;
                }
        }
}

?>