Пример #1
0
 private function more($query, $data)
 {
     $userId = OW::getUser()->getId();
     $questionId = $data['questionId'];
     $uniqId = $data['uniqId'];
     $count = empty($query['inc']) ? QUESTIONS_BOL_Service::INC_DISPLAY_COUNT : round($query['inc']);
     $tmp = $data['displayedCount'] > 10 ? 10 : $data['displayedCount'];
     $ost = $data['optionTotal'] - ($data['offset'] + $count);
     $inc = $ost <= $tmp ? $count + $ost : $count;
     $tmp = $this->service->findOptionListAndAnswerCountList($questionId, $data['startStamp'], $data['userContext'], array($query['offset'], $inc));
     $optionList = $tmp['optionList'];
     $countList = $tmp['countList'];
     $data['displayedCount'] += $inc;
     $data['offset'] += $inc;
     $answerCount = $data['poll'] ? $this->service->findTotalAnswersCount($questionId) : $this->service->findMaxAnswersCount($questionId);
     $list = new QUESTIONS_CMP_OptionList($optionList, $uniqId, $userId);
     $list->setIsPoll($data['poll']);
     $list->setEditable($data['editable']);
     $list->setAnswerCount($answerCount);
     $list->setEditMode($data['editMode']);
     $list->setUsersContext($data['userContext']);
     $opts = $list->initOption($countList, $data['displayedCount']);
     $options = array();
     foreach ($opts as $option) {
         $options[] = array('markup' => $list->getOption($option['id'])->render(), 'data' => $option);
     }
     return array('options' => $options, 'data' => $data);
 }