public function searchthreadAction() { list($page, $perpage, $keyword, $created_username, $time_start, $time_end, $fid, $digest, $created_userid, $created_ip, $hits_start, $hits_end, $replies_start, $replies_end) = $this->getInput(array('page', 'perpage', 'keyword', 'created_username', 'time_start', 'time_end', 'fid', 'digest', 'created_userid', 'created_ip', 'hits_start', 'hits_end', 'replies_start', 'replies_end')); if ($created_username) { $user = $this->_getUserDs()->getUserByName($created_username); if (!$user) { $this->showError(array('USER:exists.not', array('{username}' => $created_username))); } if ($created_userid) { $created_userid != $user['uid'] && $this->showError('USER:username.notequal.uid'); } $created_userid = $user['uid']; } // dm条件 Wind::import('SRV:forum.vo.PwThreadSo'); $dm = new PwThreadSo(); $keyword && $dm->setKeywordOfTitleOrContent($keyword); if ($fid) { $forum = Wekit::load('forum.PwForum')->getForum($fid); if ($forum['type'] != 'category') { $dm->setFid($fid); } else { $srv = Wekit::load('forum.srv.PwForumService'); $fids = array(0); $forums = $srv->getForumsByLevel($fid, $srv->getForumMap()); foreach ($forums as $value) { $fids[] = $value['fid']; } $dm->setFid($fids); } } $created_userid && $dm->setAuthorId($created_userid); $time_start && $dm->setCreateTimeStart(Pw::str2time($time_start)); $time_end && $dm->setCreateTimeEnd(Pw::str2time($time_end)); $digest && $dm->setDigest($digest); $hits_start && $dm->setHitsStart($hits_start); $hits_end && $dm->setHitsEnd($hits_end); $replies_start && $dm->setRepliesStart($replies_start); $replies_end && $dm->setRepliesEnd($replies_end); $created_ip && $dm->setCreatedIp($created_ip); $dm->setDisabled(0)->orderbyCreatedTime(false); $count = $this->_getThreadDs()->countSearchThread($dm); if ($count) { $page = $page ? $page : 1; $perpage = $perpage ? $perpage : $this->perpage; list($start, $limit) = Pw::page2limit($page, $perpage); $threads = $this->_getThreadDs()->searchThread($dm, $limit, $start); } $this->setOutput($count, 'count'); $this->setOutput($page, 'page'); $this->setOutput($perpage, 'perpage'); $this->setOutput(array('keyword' => $keyword, 'created_username' => $created_username, 'time_start' => $time_start, 'time_end' => $time_end, 'fid' => $fid, 'digest' => $digest, 'created_userid' => $created_userid, 'created_ip' => $created_ip, 'hits_start' => $hits_start, 'hits_end' => $hits_end, 'replies_start' => $replies_start, 'replies_end' => $replies_end), 'args'); $this->setOutput($this->_getFroumService()->getForumList($fid), 'forumList'); $this->setOutput($this->_getFroumService()->getForumOption($fid), 'option_html'); $this->setOutput($threads, 'threads'); }
public function run() { if (($result = $this->_checkRight()) instanceof PwError) { $this->showError($result->getError()); } list($page, $perpage, $keywords, $fid, $limittime, $orderby) = $this->getInput(array('page', 'perpage', 'keywords', 'fid', 'limittime', 'orderby')); if ($keywords) { //最后搜索时间 if (($result = $this->_checkSearch()) instanceof PwError) { $this->showError($result->getError()); } $page = $page ? $page : 1; $perpage = $perpage ? $perpage : $this->perpage; list($start, $limit) = Pw::page2limit($page, $perpage); !$orderby && ($orderby = 'lastpost_time'); Wind::import('SRV:forum.vo.PwThreadSo'); $so = new PwThreadSo(); $keywords = urldecode($keywords); $so->setKeywordOfTitleOrContent($keywords); $fid && $so->setFid($fid); $limittime && $so->setCreateTimeStart($this->_getLimitTime($limittime)); $so = $this->_getOrderBy($so, $orderby); $count = $this->_getSearchService()->countSearchThread($so); $count = $count > $this->maxNum ? $this->maxNum : $count; if ($count) { $threads = $this->_getSearchService()->searchThread($so, $limit, $start); $threads = $this->_getSearchService()->buildThreads($threads, $keywords); $this->_replaceRecord($keywords, App_Search_Record::TYPE_THREAD); } $this->setOutput($page, 'page'); $this->setOutput($perpage, 'perpage'); $this->setOutput($count, 'count'); $this->setOutput($threads, 'threads'); $this->setOutput(array(1 => 'img', 3 => 'img', 4 => 'file', 5 => 'img', 7 => 'img'), 'uploadIcon'); $this->setOutput(array('img' => '图片帖', 'file' => '附件'), 'icon'); } $args = array('keywords' => $keywords, 'fid' => $fid, 'limittime' => $limittime, 'orderby' => $orderby); $this->setOutput($args, 'args'); $forumList = Wekit::load('forum.srv.PwForumService')->getForumList(); $this->setOutput(App_Search_Record::TYPE_THREAD, 'recordType'); $this->setOutput($forumList, 'forumList'); $this->setOutput($this->getCommonForumList($forumList), 'forumdb'); $this->setTemplate('index_run'); //seo设置 $seoBo = PwSeoBo::getInstance(); $seoBo->setCustomSeo($keywords . ' - {sitename}', '', ''); Wekit::setV('seo', $seoBo); }
public function run() { $page = intval($this->getInput('page')); list($author, $fid, $createdTimeStart, $createdTimeEnd) = $this->getInput(array('author', 'fid', 'created_time_start', 'created_time_end')); $page < 1 && ($page = 1); $perpage = 20; list($start, $limit) = Pw::page2limit($page, $perpage); Wind::import('SRV:forum.vo.PwThreadSo'); $so = new PwThreadSo(); $so->setDisabled(1)->orderbyCreatedTime(0); if ($author) { $so->setAuthor($author); } if ($fid) { $forum = Wekit::load('forum.PwForum')->getForum($fid); if ($forum['type'] != 'category') { $so->setFid($fid); } else { $srv = Wekit::load('forum.srv.PwForumService'); $fids = array(0); $forums = $srv->getForumsByLevel($fid, $srv->getForumMap()); foreach ($forums as $value) { $fids[] = $value['fid']; } $so->setFid($fids); } } if ($createdTimeStart) { $so->setCreateTimeStart(Pw::str2time($createdTimeStart)); } if ($createdTimeEnd) { $so->setCreateTimeEnd(Pw::str2time($createdTimeEnd)); } $count = Wekit::load('forum.PwThread')->countSearchThread($so); $threaddb = Wekit::load('forum.PwThread')->searchThread($so, $limit, $start, PwThread::FETCH_ALL); $this->setOutput($threaddb, 'threadb'); $this->setOutput(Wekit::load('forum.srv.PwForumService')->getForumList($fid), 'forumlist'); $this->setOutput(Wekit::load('forum.srv.PwForumService')->getForumOption($fid), 'option_html'); $this->setOutput(array('author' => $author, 'created_time_start' => $createdTimeStart, 'created_time_end' => $createdTimeEnd, 'fid' => $fid), 'args'); $this->setOutput($page, 'page'); $this->setOutput($perpage, 'perpage'); $this->setOutput($count, 'count'); }
public function run() { $page = intval($this->getInput('page')); list($author, $fid, $createdTimeStart, $createdTimeEnd) = $this->getInput(array('author', 'fid', 'created_time_start', 'created_time_end')); $page < 1 && ($page = 1); $perpage = 20; list($start, $limit) = Pw::page2limit($page, $perpage); Wind::import('SRV:forum.vo.PwThreadSo'); $so = new PwThreadSo(); $so->setDisabled(1)->orderbyCreatedTime(0); $url = array(); if ($author) { $so->setAuthor($author); $url['author'] = $author; } if ($fid) { $so->setFid($fid); $url['fid'] = $fid; } if ($createdTimeStart) { $so->setCreateTimeStart(Pw::str2time($createdTimeStart)); $url['created_time_start'] = $createdTimeStart; } if ($createdTimeEnd) { $so->setCreateTimeEnd(Pw::str2time($createdTimeEnd)); $url['created_time_end'] = $createdTimeEnd; } $count = Wekit::load('forum.PwThread')->countSearchThread($so); $threaddb = Wekit::load('forum.PwThread')->searchThread($so, $limit, $start); $this->setOutput($threaddb, 'threadb'); $this->setOutput(Wekit::load('forum.srv.PwForumService')->getForumOption($fid), 'option_html'); $this->setOutput($page, 'page'); $this->setOutput($perpage, 'perpage'); $this->setOutput($count, 'count'); $this->setOutput($url, 'url'); // seo设置 Wind::import('SRV:seo.bo.PwSeoBo'); $seoBo = PwSeoBo::getInstance(); $lang = Wind::getComponent('i18n'); $seoBo->setCustomSeo($lang->getMessage('SEO:manage.content.run.title'), '', ''); Wekit::setV('seo', $seoBo); }
protected function getData($field, $order, $limit, $offset) { Wind::import('SRV:forum.vo.PwThreadSo'); $so = new PwThreadSo(); $time = Pw::getTime(); $so->setDisabled(0); $field['tids'] && $so->setTid(explode(' ', $field['tids'])); if ($field['usernames']) { $usernames = explode(' ', $field['usernames']); foreach ($usernames as &$username) { $username = trim($username); } $users = Wekit::load('user.PwUser')->fetchUserByName($usernames); $uids = array_keys($users); if ($uids) { $so->setAuthorId($uids); } else { return array(); } } $field['keywords'] && $so->setKeywordOfTitle(trim($field['keywords'])); $field['mapFid'] && $so->setFid($field['mapFid']); //修正后的fids $field['special'] && $so->setSpecial($field['special']); $field['istop'] && $so->setTopped($field['istop']); $field['ispic'] && $so->setHasImage($field['ispic']); //$field['isattach'] && $so->setIsattach($field['isattach']); $field['isdigest'] && $so->setDigest($field['isdigest']); $field['createdtime'] && $so->setCreateTimeStart($time - intval($field['createdtime'])); $field['createdtime'] && $so->setCreateTimeEnd($time); $field['posttime'] && $so->setLastpostTimeStart($time - intval($field['posttime'])); $field['posttime'] && $so->setLastpostTimeEnd($time); switch ($order) { case '2': $so->orderbyLastPostTime(false); break; case '1': $so->orderbyCreatedTime(false); break; case '3': $so->orderbyReplies(false); break; case '4': $so->orderbyHits(false); break; case '5': $so->orderbyLike(false); break; } $list = Wekit::load('forum.PwThread')->searchThread($so, $limit, $offset); return $this->_buildSignKey($list, $field['ishighlight']); }