Plugin: ReportByAuthor: Fix Edit lp item - refs BT#17943

pull/3740/head
Carlos Alvarado 5 years ago
parent 1e8229db0d
commit 1db4c6c89d
No known key found for this signature in database
GPG Key ID: B612DB1EE6658FBB
  1. 44
      main/lp/learnpath.class.php

@ -7335,7 +7335,7 @@ class learnpath
case 'dir':
case 'asset':
case 'sco':
if (isset($_GET['view']) && $_GET['view'] == 'build') {
if (isset($_GET['view']) && $_GET['view'] == 'build') {
$return .= $this->display_manipulate($item_id, $row['item_type']);
$return .= $this->display_item_form(
$row['item_type'],
@ -7749,6 +7749,7 @@ class learnpath
$form->addHidden('type', TOOL_QUIZ);
$form->addHidden('post_time', time());
$form = $this->getAutorLpItem($form);
$form->setDefaults($defaults);
return '<div class="sectioncomment">'.$form->returnForm().'</div>';
@ -8110,6 +8111,7 @@ class learnpath
}
$form->addHidden('type', TOOL_FORUM);
$form->addHidden('post_time', time());
$form = $this->getAutorLpItem($form);
$form->setDefaults($defaults);
return '<div class="sectioncomment">'.$form->returnForm().'</div>';
@ -8314,6 +8316,7 @@ class learnpath
$form->addHidden('type', TOOL_THREAD);
$form->addHidden('post_time', time());
$form = $this->getAutorLpItem($form);
$form->setDefaults($defaults);
return $form->returnForm();
@ -8963,6 +8966,7 @@ class learnpath
}
$form->addElement('hidden', 'type', TOOL_DOCUMENT);
$form->addElement('hidden', 'post_time', time());
$form = $this->getAutorLpItem($form);
$form->setDefaults($defaults);
return $form->returnForm();
@ -9254,6 +9258,7 @@ class learnpath
$form->addElement('hidden', 'type', TOOL_READOUT_TEXT);
$form->addElement('hidden', 'post_time', time());
$form = $this->getAutorLpItem($form);
$form->setDefaults($defaults);
return $form->returnForm();
@ -9602,6 +9607,7 @@ class learnpath
}
$form->addHidden('type', TOOL_LINK);
$form->addHidden('post_time', time());
$form = $this->getAutorLpItem($form);
$form->setDefaults($defaults);
return '<div class="sectioncomment">'.$form->returnForm().'</div>';
@ -9774,6 +9780,7 @@ class learnpath
$form->addHidden('type', TOOL_STUDENTPUBLICATION);
$form->addHidden('post_time', time());
$form = $this->getAutorLpItem($form);
$form->setDefaults(['title' => $item_title]);
$return = '<div class="sectioncomment">';
@ -14165,4 +14172,39 @@ EOD;
return '';
}
/**
* Gets the form to evaluate if it exists contains the extra field extra_authorlpitem to establish authors when
* editing an item of an LP. Returns the form with the authors' setting. It must be set before the setDefault.
*
* @param FormValidator $form
* @return FormValidator
*/
private function getAutorLpItem($form ){
/** @var FormValidator $form */
if ($form->hasElement('extra_authorlpitem')) {
/** @var HTML_QuickForm_select $author */
$author = $form->getElement('extra_authorlpitem');
$options = [];
$field = new ExtraField('user');
$authorLp = $field->get_handler_field_info_by_field_variable('authorlp');
$idExtraField = (int) (isset($authorLp['id']) ? $authorLp['id'] : 0);
if ($idExtraField != 0) {
$extraFieldValueUser = new ExtraFieldValue('user');
$arrayExtraFieldValueUser = $extraFieldValueUser->get_item_id_from_field_variable_and_field_value(
$authorLp['variable'],
1,
true,
false,
true
);
foreach ($arrayExtraFieldValueUser as $item) {
$teacher = api_get_user_info($item['item_id']);
$options[$teacher['id']] = $teacher['complete_name'];
}
}
$author->setOptions($options);
}
return $form;
}
}

Loading…
Cancel
Save