public function tagAction() { //封装header $tuser = new user(); $auth = Zend_Auth::getinstance(); #获取auth用户实例 $auth->getIdentity(); #取得当前用户信息 $email = $auth->getIdentity(); $tuser = new user(); $user = $tuser->getAllbyEmail($email); $header = array("UID" => $user[0]["UID"], "image" => $user[0]["image"]); //封装tag $ttag = new tag(); $tans = new answer(); $task = new ask(); $tquestion = new question(); $tfollowq = new followQ(); $tags = $ttag->getAllTags(); $tagnum = count($tags); $this->view->tags = $tags; //print_r($tags); for ($i = 0; $i < count($tags); $i++) { //第i个tag $QIDs = $ttag->getQIDsbyTag($tags[$i]); $questionnum = count($QIDs); $tag[$i]["tag"] = $tags[$i]; $questiontmp[0] = 0; $answernum[0] = 0; for ($j = 0; $j < $questionnum; $j++) { //第j个question $question = $tquestion->getAllbyQID($QIDs[$j]); $QID = $QIDs[$j]; $title = $question["qtitle"]; if (strlen($title) > 75) { $title = substr($title, 0, 72); $title = $title . "..."; } $follownum = $tfollowq->getFollownumbyQID($QID); $answernum[$j] = $tans->getAnswernumbyQID($QID); $questiontmp[$j] = array("QID" => $QID, "title" => $title, "follownum" => $follownum, "answernum" => $answernum[$j]); } array_multisort($answernum, SORT_DESC, $questiontmp); for ($j = 0; $j < min(3, count($questiontmp)); $j++) { $Qresult[$i][$j] = $questiontmp[$j]; } } $this->view->tag = $tags; $this->view->Qresult = $Qresult; $this->view->header = $header; $this->render('tag'); }
public function tagAction() { //封装header $auth = Zend_Auth::getinstance(); #获取当前用户实例 $UID = $auth->getIdentity(); #取得当前用户信息 if ($auth->hasIdentity() == false) { $this->render('index'); } $tuser = new user(); $user = $tuser->getAllbyUID($UID); $header = array("UID" => $user["UID"], "image" => $user["image"]); //封装tag $ttag = new tag(); $tans = new answer(); $task = new ask(); $tquestion = new question(); $tfollowq = new followQ(); $tagnum = $ttag->gerRequest()->getParam("tagnum"); $tags = $ttag->getAllTags(); for ($i = 0; $i < $tagnum; $i++) { //第i个tag $QIDs = $ttag->getQIDsbyTags($tags[$i]); for ($j = 0; $j < tagnum; $j++) { //第j个question $mUID = $task->getUIDbyQID($QIDs[$j]); $person = $tuser->getAllbyUID($mUID); $image1[$j] = $person['image']; $question = $tquestion->getAllbyQID($QIDs[$j]); $QID1[$j] = $QIDs[$i]; $title1[$j] = $question["title"]; $abstract1[$j] = $question["Qabstract"]; $follownum[$j] = $tfollowq->getFollownumbyQID($QID1[$j]); $answernum[$j] = $tans->getAnswernumbyQID($QID1[$j]); $tag1[$j] = $ttag->getTagbyQID($QID1[$j]); $time1[$j] = $task->getAskTimebyQID($QIDs[$j]); $tag[$i][$j] = array("image" => $image1[$j], "QID" => $QIDs[$j], "title" => $title1[$j], "abstract" => $abstract1[$j], "follownum" => $follownum[$j], "answernum" => $answernum[$j], "tag" => $tag1[$j], "time" => $time1[$j]); } } //传递变量,render $this->view->tag = $tag; $this->view->header = $header; $this->render('tag'); }
public function tagAction() { if ($_GET) { $key = $this->getRequest()->getParam('tag', ''); $P = $this->getRequest()->getParam('P', '1'); } $perpage = 10; //question number per page $answer = new answer(); $followQ = new followQ(); $question = new question(); $tag = new tag(); $ask = new ask(); $QID = $tag->getQIDsbyTag($key); $result = array(); for ($i = 0; $i < count($QID); $i++) { $result[$i] = $question->getAllbyQID($QID[$i]); $result[$i]['time'] = $ask->getAskTimebyQID($result[$i]['QID']); $result[$i]['answernum'] = $answer->getAnswernumbyQID($result[$i]['QID']); $result[$i]['follownum'] = $followQ->getFollownumbyQID($result[$i]['QID']); $result[$i]['tag'] = $tag->getTagbyQID($result[$i]['QID']); } $answer = new answer(); $likeA = new likeA(); $user = new user(); for ($i = 0; $i < count($result); $i++) { $maxansid = -1; $maxsum = -1; //the id of most liked answer, the like number of the answer $AID = $answer->getAIDsbyQID($QID[$i]); for ($j = 0; $j < count($AID); $j++) { $likenum = $likeA->getLikenumbyAID($AID[$j]); if ($likenum > $maxsum) { $maxansid = $AID[$j]; $maxsum = $likenum; } } if ($maxansid != -1) { $result[$i]['AAbstract'] = $answer->getAbstractbyAID($maxansid); $tmp = $user->getAllbyUID($answer->getUIDbyAID($maxansid)); $result[$i]['image'] = $tmp['image']; } } $sum = count($result); //divide into several pages $Pnum = floor($sum / $perpage); if ($sum % $perpage > 0) { $Pnum++; } $presult = array(); $length = min($P * $perpage, $sum); for ($i = ($P - 1) * $perpage; $i < $length; $i++) { $presult[$i] = $result[$i]; } $this->view->P = $P; $this->view->Pnum = $Pnum; $this->view->Qresult = $presult; $tmp = $tag->getAllTags(); //warning: bad situation:$tmp[1] is empty,but $tmp[0] && $tmp[2] is exist $i = 0; foreach ($tmp as $a) { $result[$i++] = $a; } $this->view->tag = $result; //HotQlist $mans = new answer(); $mquestion = new question(); $mfollowq = new followQ(); $hquestion = $mans->getMostAnsweredQID(1, 6); for ($i = 0; $i < count($hquestion); $i++) { $qq = $mquestion->getAllbyQID($hquestion[$i]); $HotQlist[$i]["QID"] = $qq["QID"]; $HotQlist[$i]["title"] = $qq["qtitle"]; $HotQlist[$i]["follownum"] = $mfollowq->getFollownumbyQID($qq["QID"]); $HotQlist[$i]["answernum"] = $mans->getAnswernumbyQID($qq["QID"]); } $lefter = array("hotQlist" => $HotQlist); $this->view->lefter = $lefter; $this->view->url = "/search/tag"; $this->render('tagresult'); // }
public function answerAction() { session_start(); if (isset($_SESSION['user'])) { $loginuser = $_SESSION['user']; } else { $loginuser = array('UID' => -1); } #名字要根据login的控制器改过来 $UID = $loginuser['UID']; //if($_GET['P'] != null) //$APage=$_GET['P']; #从前端获取ask的页码 //else $APage=1; $APage = 1; //$UID=2; $this->view->PersonalInfo = array('UID' => $UID, 'image' => ''); #$loginuser['image']); #$MUID=$this->getRequest()->getParam('MUID',''); #从前端的获取被访问者的UID $MUID = $_GET['UID']; $user = new user(); $info = $user->getAllbyUID($MUID); $answer_tmp = new answer(); $likeQ = new likeQ(); $likeA = new likeA(); $followu = new followU(); $follownum = $followu->getFollownumbyUID($MUID); $followednum = $followu->getFollownumbyFUID($MUID); $farr = $followu->getFUIDsbyUID($UID); $isfollow = false; for ($i = 0; $i < count($farr); $i++) { if ($farr[$i] == $MUID) { $isfollow = true; break; } } $this->view->pinfo = array('UID' => $MUID, 'nickname' => $info['nickname'], 'sex' => $info['sex'], 'image' => $info['image'], 'institute' => $info['institute'], 'grade' => $info['grade'], 'answernum' => $answer_tmp->getAnswernumbyUID($MUID), 'likenum' => $this->getLikedNumByUID($MUID), 'follownum' => $follownum, 'followednum' => $followednum, 'isfollow' => $isfollow); $question = new question(); $answer_tmp1 = new answer(); $answer = array(); $tag = new tag(); $followq = new followQ(); $AIDs = $answer_tmp1->getAIDsbyUID($MUID); $Anum = count($AIDs); $AID_Time_tmp = array(); $m = 0; #为answer数组计数用 for ($i = 0; $i < $Anum; $i++) { $AID_Time_tmp[$AIDs[$i]] = $answer_tmp1->getTimebyAID($AIDs[$i]); } arsort($AID_Time_tmp); foreach ($AID_Time_tmp as $aid => $time) { $a = $answer_tmp1->getAllbyAID($aid); $qid = $a['QID']; $answer[$m] = array('QID' => $qid, 'title' => $question->getAllbyQID($qid)['qtitle'], 'abstract' => $question->getAllbyQID($qid)['Qabstract'], 'Aabstract' => $a['AAbstract'], 'Atime' => $a['time'], 'follownum' => $followq->getFollownumbyQID($qid), 'answernum' => $answer_tmp->getAnswernumbyQID($qid), 'tag' => $tag->getTagbyQID($qid)); $m++; } if ($Anum % 10 == 0) { $this->view->Pnum = $Anum / 10; } else { $this->view->Pnum = $Anum / 10 + 1; } $this->view->answer = array_slice($answer, ($APage - 1) * 10, 10); $this->view->url = "/personal/answer?UID={$MUID}&"; $this->render("homepage-answer"); }