From 75f28186a995aa930f6db9f05ec7b63bbd2cd284 Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 30 May 2006 03:30:14 +0000 Subject: Merge from 3.0 branch till 1103 --- demos/blog/protected/Pages/SearchPost.php | 76 +++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 demos/blog/protected/Pages/SearchPost.php (limited to 'demos/blog/protected/Pages/SearchPost.php') diff --git a/demos/blog/protected/Pages/SearchPost.php b/demos/blog/protected/Pages/SearchPost.php new file mode 100644 index 00000000..53e8401c --- /dev/null +++ b/demos/blog/protected/Pages/SearchPost.php @@ -0,0 +1,76 @@ +_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%'"; + } + 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; + } + } +} + +?> \ No newline at end of file -- cgit v1.2.3