function followedAction()
 {
     $MUID = $_GET['UID'];
     //传被访问者的信息
     $user = new user();
     $info = $user->getAllbyUID($MUID);
     $answer = new answer();
     $likeQ = new likeQ();
     $likeA = new likeA();
     $followu = new followU();
     $ffnum = $followu->getFollownumbyUID($MUID);
     //$this->view->followednum=$ffnum; //关注你的人的人数
     $uids = $followu->getUIDsbyFUID($MUID);
     //关注你的人的uid数组
     $this->view->pinfo = array('UID' => $MUID, 'nickname' => $info['nickname'], 'sex' => $info['sex'], 'image' => $info['image'], 'institute' => $info['institute'], 'grade' => $info['grade'], 'answernum' => $answer->getAnswernumbyUID($MUID), 'likenum' => $likeA->getLikenumbyUID($MUID) + $likeQ->getLikenumbyUID($MUID), 'follownum' => $ffnum, 'followednum' => count($uids));
     $FFPI = array();
     for ($i = 0; $i < count($uids); $i++) {
         $info = $user->getAllbyUID($uids[$i]);
         $FFPI[$i] = array("MUID" => $uids[$i], "Mnickname" => $info['nickname'], "Mimage" => $info['image'], 'Minstitute' => $info['institute'], "Mgrade" => $info['grade']);
     }
     $this->view->FPI = $FFPI;
     $this->render("homepage-follower");
 }
Exemple #2
0
 public function mainAction()
 {
     //封装header
     $auth = Zend_Auth::getinstance();
     #获取auth用户实例
     $auth->getIdentity();
     #取得当前用户信息
     $email = $auth->getIdentity();
     //$this->view->code = $email;
     //$this->render('test');
     //exit(0);
     #$email = '*****@*****.**';
     $muser = new user();
     $quser = $muser->getAllbyEmail($email);
     $header = array("UID" => $quser[0]["UID"], "image" => $quser[0]["image"]);
     $mode = $this->getRequest()->getParam("mode", "0");
     $page = $this->getRequest()->getParam("P", "1");
     $mtag = new tag();
     $tag = $mtag->getAllTags();
     $mans = new answer();
     $mask = new ask();
     $mquestion = new question();
     $mfollowq = new followQ();
     $likec = new likeC();
     //lefter
     //Qlist
     $Qlist[0] = 0;
     if ($mode == 1) {
         $pnum = $mans->getAQnum();
     } else {
         $pnum = $mquestion->getQuestionnum();
     }
     $pend = ($pnum - $pnum % 10) / 10;
     if ($pnum % 10 != 0) {
         $pend++;
     }
     if ($page == $pend) {
         $start = ($page - 1) * 10 + 1;
         $end = $pnum;
     } else {
         $start = ($page - 1) * 10 + 1;
         $end = $page * 10;
     }
     if ($mode == 1) {
         $mQID = $mans->getMostAnsweredQID($start, $end);
     } else {
         $mQID = $mask->getNewest($start, $end);
     }
     $qnum = count($mQID);
     for ($i = 0; $i < $qnum; $i++) {
         $likea = new likeA();
         $QID[$i] = $mQID[$i];
         $question = $mquestion->getAllbyQID($QID[$i]);
         $title = $question["qtitle"];
         $time = $mask->getAskTimebyQID($QID[$i]);
         $answernum = $mans->getAnswernumbyQID($QID[$i]);
         $follownum = $mfollowq->getFollownumbyQID($QID[$i]);
         $tag = $mtag->getTagbyQID($QID[$i]);
         $AIDs = $mans->getAIDsbyQID($QID[$i]);
         if ($answernum != 0) {
             $likenum = $likea->getLikenumbyAID($AIDs[0]);
             $num = $AIDs[0];
             for ($j = 0; $j < count($AIDs); $j++) {
                 $now = $likea->getLikenumbyAID($AIDs[$j]);
                 if ($now > $likenum) {
                     $likenum = $now;
                     $num = $AIDs[$j];
                 }
             }
             $AID = $num;
             $UIDtmp = $mans->getUIDbyAID($AID);
             $usernow = $muser->getAllbyUID($UIDtmp);
             $AUID = $usernow["UID"];
             $Aimage = $usernow["image"];
             $Aabstract = $mans->getAbstractbyAID($AID);
         } else {
             $AUID = 0;
             $Aimage = 0;
             $Aabstract = 0;
         }
         $Qlist[$i] = array("QID" => $QID[$i], "title" => $title, "time" => $time, "answernum" => $answernum, "follownum" => $follownum, "tag" => $tag, "AUID" => $AUID, "Aimage" => $Aimage, "Aabstract" => $Aabstract);
     }
     //HotUlist
     $huser = $mans->getMostAnsweredUID(1, 3);
     for ($i = 0; $i < count($huser); $i++) {
         $uu = $muser->getAllbyUID($huser[$i]);
         $HotUlist[$i]["UID"] = $uu["UID"];
         $HotUlist[$i]["image"] = $uu["image"];
         $HotUlist[$i]["nickname"] = $uu["nickname"];
         $HotUlist[$i]["answernum"] = $mans->getAnswernumbyUID($uu["UID"]);
         $HotUlist[$i]["likenum"] = $this->getLikedNumByUID($uu["UID"]);
     }
     //HotQlist
     $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("Qlist" => $Qlist, "hotUlist" => $HotUlist, "hotQlist" => $HotQlist);
     $this->view->lefter = $lefter;
     $this->view->header = $header;
     $this->view->url = '/index/main';
     $this->view->P = $page;
     $this->view->Pnum = $pend;
     $this->view->mode = $mode;
     $this->render('main');
 }
 public function searchAction()
 {
     function modify($s)
     {
         $s = "%" . $s . "%";
         for ($i = 0; $i < strlen($s); $i++) {
             if ($s[$i] == ' ') {
                 $s[$i] = '%';
             }
         }
         return $s;
     }
     function my_sort1($a, $b)
     {
         // sort question by follownum first and then answernum
         if ($a['follownum'] == $b['follownum']) {
             if ($a['answernum'] == $b['answernum']) {
                 return 0;
             } else {
                 return $a['answernum'] < $b['answernum'] ? 1 : -1;
             }
         }
         return $a['follownum'] < $b['follownum'] ? 1 : -1;
     }
     function my_sort2($a, $b)
     {
         // sort user by likenum
         if ($a['likenum'] == $b['likenum']) {
             return 0;
         } else {
             return $a['likenum'] < $b['likenum'] ? 1 : -1;
         }
     }
     $perpage = 10;
     //question number per page
     if ($_GET) {
         // get front-data
         $data = $this->getRequest()->getParam('key', '');
         $key = $data = trim($data);
         $data = modify($data);
         $P = $this->getRequest()->getParam('P', '1');
     }
     //file_put_contents ( "2.txt", $data );
     $result = array();
     if ($data == '') {
         $this->render('searchresult');
         return -1;
     }
     /*
      * search for question
      *
      */
     //file_put_contents ( "1.txt", "search2" );
     $search = new question();
     $result = $search->searchQestion($data);
     $answer = new answer();
     $followQ = new followQ();
     $question = new question();
     $tag = new tag();
     $ask = new ask();
     for ($i = 0; $i < count($result); $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']);
     }
     usort($result, "my_sort1");
     // sort question by follownum first and then answernum
     //print_r($result);
     //$_SESSION["$key"] = $result;
     $sum = count($result);
     $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;
     /*
      * search for user
      * 
      */
     session_start();
     $loginuser = $_SESSION['user'];
     $UID = $loginuser['UID'];
     $followu = new followU();
     $farr = $followu->getFUIDsbyUID($UID);
     if ($P > 1) {
         $this->view->Uresult = array();
     } else {
         $search = new user();
         $result = $search->searchUser($data);
         $likeA = new likeA();
         $likeC = new likeC();
         $likeQ = new likeQ();
         $answer = new answer();
         for ($i = 0; $i < count($result); $i++) {
             $isfollow = false;
             $result[$i]['likenum'] = $this->getLikedNumByUID($result[$i]['UID']);
             //$result[$i]['likenum']+=$likeC->getLikenumbyUID($result[$i]['UID']);
             //$result[$i]['likenum']+=$likeQ->getLikenumbyUID($result[$i]['UID']);
             $result[$i]['answernum'] = $answer->getAnswernumbyUID($result[$i]['UID']);
             for ($j = 0; $j < count($farr); $j++) {
                 if ($farr[$j] == $result[$i]['UID']) {
                     $isfollow = true;
                     break;
                 }
             }
             $result[$i]['isfollow'] = $isfollow;
         }
         usort($result, "my_sort2");
         //sort user by likenum
         $this->view->Uresult = $result;
     }
     $this->view->key = $key;
     $this->view->url = "/search/search";
     $this->render('searchresult');
     //
     //file_put_contents ( "1.txt", "search3" );
 }
 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");
 }