public function onBeforeRender() { parent::onBeforeRender(); $cmpList = array(); $counter = 0; $questionCount = count($this->feed); foreach ($this->feed as $question) { $bubbleActivity = $this->bubbleActivityList[$question->id]; $counter++; $activityList = empty($this->activityList[$question->id]) ? array() : $this->activityList[$question->id]; $cmp = new EQUESTIONS_CMP_FeedItem($question, $bubbleActivity, $activityList); if ($questionCount == $counter) { $cmp->setIsLastItem(); } $cmpList[] = $cmp->render(); } $this->assign('list', $cmpList); }
public function addQuestion() { if (!OW::getRequest()->isAjax()) { throw new Redirect404Exception(); } if (!OW::getUser()->isAuthenticated()) { echo json_encode(false); exit; } if (empty($_POST['question'])) { echo json_encode(false); exit; } $permissions = EQUESTIONS_CLASS_CreditsBridge::getInstance()->getAllPermissions(EQUESTIONS_CLASS_Credits::ACTION_ASK); if (!$permissions[EQUESTIONS_CLASS_Credits::ACTION_ASK]) { echo json_encode(array('reset' => false, 'warning' => EQUESTIONS_CLASS_CreditsBridge::getInstance()->credits->getErrorMessage(EQUESTIONS_CLASS_Credits::ACTION_ASK))); exit; } $question = empty($_POST['question']) ? '' : htmlspecialchars($_POST['question']); $answers = empty($_POST['answers']) ? array() : array_filter($_POST['answers'], 'trim'); $allowAddOprions = !empty($_POST['allowAddOprions']); $attachment = empty($_POST['attachment']) ? array() : json_decode($_POST['attachment'], true); if (!empty($attachment)) { if ($attachment['type'] == 'file') { $attachment['url'] = OW::getEventManager()->call('base.attachment_save_image', array('genId' => $attachment['fileId'])); $attachment['type'] = 'photo'; $attachment['href'] = $attachment['url']; } } $userId = OW::getUser()->getId(); $questionDto = $this->service->addQuestion($userId, $question, $attachment, array('allowAddOprions' => $allowAddOprions)); foreach ($answers as $ans) { $this->service->addOption($questionDto->id, $userId, $ans); } $event = new OW_Event('feed.action', array('entityType' => EQUESTIONS_BOL_Service::ENTITY_TYPE, 'entityId' => $questionDto->id, 'pluginKey' => 'equestions', 'userId' => $userId, 'visibility' => 15)); OW::getEventManager()->trigger($event); $activityList = EQUESTIONS_BOL_FeedService::getInstance()->findMainActivity(time(), array($questionDto->id), array(0, 6)); $cmp = new EQUESTIONS_CMP_FeedItem($questionDto, reset($activityList[$questionDto->id]), $activityList[$questionDto->id]); $html = $cmp->render(); $script = OW::getDocument()->getOnloadScript(); echo json_encode(array('markup' => array('html' => $html, 'script' => $script, 'position' => 'prepend'), 'permissions' => $permissions)); exit; }