container_guid = elgg_get_page_owner_guid();
$question->access_id = get_default_access(null, [
'entity_type' => $question->getType(),
'entity_subtype' => $question->getSubtype(),
'container_guid' => $question->getContainerGUID(),
]);
}
$container = $question->getContainerEntity();
$title = [
'name' => 'title',
'id' => 'question_title',
'value' => elgg_get_sticky_value('question', 'title', $question->title),
'required' => true,
];
$description = [
'name' => 'description',
'id' => 'question_description',
'value' => elgg_get_sticky_value('question', 'description', $question->description),
];
$tags = [
'name' => 'tags',
'id' => 'question_tags',
'value' => elgg_get_sticky_value('question', 'tags', $question->tags),
];
$comment_options = [
'name' => 'comments_enabled',
'id' => 'questions-comments',
'value' => elgg_get_sticky_value('question', 'comments_enabled', $question->comments_enabled),
'options_values' => [
'on' => elgg_echo('on'),
'off' => elgg_echo('off'),
],
'class' => 'mls',
];
if ($container instanceof ElggUser) {
$access_setting = questions_get_personal_access_level();
if ($access_setting !== false) {
$show_access_options = false;
}
} elseif ($container instanceof ElggGroup) {
$access_setting = questions_get_group_access_level($container);
if ($access_setting !== false) {
$show_access_options = false;
}
}
$access_id = [
'name' => 'access_id',
'id' => 'question_access_id',
'value' => (int) elgg_get_sticky_value('question', 'access_id', $question->access_id),
];
// clear sticky form
elgg_clear_sticky_form('question');
?>
'questions-comments'], elgg_echo('comments'));
$comments .= elgg_view('input/select', $comment_options);
echo elgg_format_element('div', [], $comments);
// access options
if ($show_access_options) {
$access = elgg_format_element('label', ['for' => 'question_access_id'], elgg_echo('access'));
$access .= '
';
$access .= elgg_view('input/access', $access_id);
echo elgg_format_element('div', [], $access);
} else {
echo elgg_view('input/hidden', ['name' => 'access_id', 'value' => $access_setting]);
}
// container selection options
if (!$editing || (questions_experts_enabled() && questions_is_expert(elgg_get_page_owner_entity()))) {
if ($show_group_selector && elgg_is_active_plugin('groups')) {
$group_options = [
'type' => 'group',
'limit' => false,
'metadata_name_value_pairs' => [
'name' => 'questions_enable',
'value' => 'yes'
],
'joins' => ['JOIN ' . elgg_get_config('dbprefix') . 'groups_entity ge ON e.guid = ge.guid'],
'order_by' => 'ge.name ASC'
];
if (!$editing) {
$owner = elgg_get_logged_in_user_entity();
$group_options['relationship'] = 'member';
$group_options['relationship_guid'] = elgg_get_logged_in_user_guid();
} else {
$owner = $question->getOwnerEntity();
}
// group selector
$groups = new ElggBatch('elgg_get_entities_from_relationship', $group_options);
// build group optgroup
$group_optgroup = [];
foreach ($groups as $group) {
// can questions be asked in this group
if (!questions_can_ask_question($group)) {
continue;
}
$selected = [
'value' => $group->getGUID(),
];
if ($group->getGUID() == $question->getContainerGUID()) {
$selected['selected'] = true;
}
$group_optgroup[] = elgg_format_element('option', $selected, $group->name);
}
if (!empty($group_optgroup)) {
$container_options = true;
$select_options = [];
// add user to the list
$selected = [
'value' => '',
];
if ($owner->getGUID() == $question->getContainerGUID()) {
$selected['selected'] = true;
}
if (!questions_limited_to_groups()) {
$selected['value'] = $owner->getGUID();
$select_options[] = elgg_format_element('option', $selected, $owner->name);
} else {
$select_options[] = elgg_format_element('option', $selected, elgg_echo('questions:edit:question:container:select'));
}
$select_options[] = elgg_format_element('optgroup', ['label' => elgg_echo('groups')], implode('', $group_optgroup));
// format select
$select_attr = [
'name' => 'container_guid',
'class' => 'elgg-input-dropdown',
'id' => 'questions-container-guid',
];
$select = elgg_format_element('select', $select_attr, implode('', $select_options));
// build output
$container_selector = elgg_format_element('label', ['for' => 'questions-container-guid'], elgg_echo('questions:edit:question:container'));
$container_selector .= '
';
$container_selector .= $select;
echo elgg_format_element('div', [], $container_selector);
}
}
}
// end of the form
$footer = [];
if (!$container_options) {
$footer[] = elgg_view('input/hidden', ['name' => 'container_guid', 'value' => $question->getContainerGUID()]);
}
$footer[] = elgg_view('input/hidden', ['name' => 'guid', 'value' => $question->getGUID()]);
if ($editing && questions_can_move_to_discussions($container)) {
$footer[] = elgg_view('output/url', [
'text' => elgg_echo('questions:edit:question:move_to_discussions'),
'href' => false,
'class' => 'elgg-button elgg-button-action float-alt',
'id' => 'questions-move-to-discussions',
'rel' => elgg_echo('questions:edit:question:move_to_discussions:confirm'),
]);
}
$footer[] = elgg_view('input/submit', ['value' => elgg_echo('submit')]);
echo elgg_format_element('div', ['class' => 'elgg-foot'], implode('', $footer));