Beispiel #1
0
    register_error(elgg_echo('questions:action:answer:save:error:body', [$container_guid, $description]));
    forward(REFERER);
}
if ($adding && !can_write_to_container(0, $container_guid, 'object', 'answer')) {
    register_error(elgg_echo('questions:action:answer:save:error:container'));
    forward(REFERER);
}
$question = get_entity($container_guid);
if (empty($question) || !$question instanceof ElggQuestion) {
    register_error(elgg_echo('ClassException:ClassnameNotClass', [$container_guid, elgg_echo('item:object:question')]));
    forward(REFERER);
}
if ($question->getStatus() != 'open') {
    elgg_clear_sticky_form('answer');
    register_error(elgg_echo('questions:action:answer:save:error:question_closed'));
    forward(REFERER);
}
$answer->description = $description;
$answer->access_id = $question->access_id;
$answer->container_guid = $container_guid;
try {
    $answer->save();
    if ($adding) {
        elgg_create_river_item(['view' => 'river/object/answer/create', 'action_type' => 'create', 'subject_guid' => elgg_get_logged_in_user_guid(), 'object_guid' => $answer->getGUID(), 'access_id' => $answer->access_id]);
    }
} catch (Exception $e) {
    register_error(elgg_echo('questions:action:answer:save:error:save'));
    register_error($e->getMessage());
}
elgg_clear_sticky_form('answer');
forward(get_input('forward', $answer->getURL()));
Beispiel #2
0
 /**
  * Publish post also on frontend
  *
  * @return bool
  */
 public function publishOnFrontend()
 {
     if ($this->answerGuid == 1) {
         $answer = new ElggAnswer();
         $answer->description = $this->description;
         $answer->intanswerGuid = $this->guid;
         $answer->container_guid = $this->container_guid;
         $answer->access_id = $this->getQuestion()->access_id;
         $publish_user = elgg_get_plugin_setting('workflow_publishuser', 'questions');
         if ($publish_user && ($user = get_user_by_username($publish_user))) {
             $answer->owner_guid = $user->guid;
             // ignore access because we would maybe want to write in the name of publishuser.
             elgg_set_ignore_access(true);
             $answer->save();
             elgg_set_ignore_access(false);
         } else {
             $answer->save();
         }
         $this->answerGuid = $answer->guid;
         update_entity_last_action($answer->container_guid, $answer->time_created);
     } elseif (is_int($this->answerGuid)) {
         $answer = get_entity($this->answerGuid);
         if ($answer instanceof ElggAnswer) {
             // ignore access because we would maybe want to overwrite entity of publishuser.
             elgg_set_ignore_access(true);
             $answer->description = $this->description;
             $answer->save();
             elgg_set_ignore_access(false);
         }
     }
 }