Add conf setting survey_additional_teacher_modify_actions - refs BT#15281

Allow add additional actions (as links) in survey list for teachers.
e.g. ['myplugin' => ['MyPlugin', 'urlGeneratorCallback']]
pull/2808/head
Angel Fernando Quiroz Campos 7 years ago
parent 7a4fccc972
commit ebe2eb117a
  1. 3
      main/install/configuration.dist.php
  2. 2
      main/survey/survey.php
  3. 30
      main/survey/surveyUtil.class.php

@ -522,6 +522,9 @@ ALTER TABLE c_survey_question ADD is_required TINYINT(1) DEFAULT 0 NOT NULL;
//$_configuration['allow_survey_availability_datetime'] = false;
// Mark the "Required" field during question creation process when displaying the form.
//$_configuration['survey_mark_question_as_required'] = false;
// Allow add additional actions (as links) in survey list for teachers.
// e.g. ['myplugin' => ['MyPlugin', 'urlGeneratorCallback']]
//$_configuration['survey_additional_teacher_modify_actions'] = [];
// ------
// Allow career diagram, requires a DB change:

@ -159,6 +159,8 @@ if ($survey_data['survey_type'] != 3) {
}
}
$survey_actions .= SurveyUtil::getAdditionalTeacherActions($survey_id, ICON_SIZE_MEDIUM);
echo '<div class="actions">'.$survey_actions.'</div>';
$urlQuestion = api_get_path(WEB_CODE_PATH).'survey/question.php?'.api_get_cidreq().'&action=add';

@ -2919,6 +2919,8 @@ class SurveyUtil
if (api_is_allowed_to_edit() ||
api_is_element_in_the_session(TOOL_SURVEY, $survey_id)
) {
$actions[] = self::getAdditionalTeacherActions($survey_id);
$warning = addslashes(api_htmlentities(get_lang('DeleteSurvey').'?', ENT_QUOTES));
$actions[] = Display::url(
Display::return_icon('delete.png', get_lang('Delete')),
@ -2933,6 +2935,34 @@ class SurveyUtil
return implode(PHP_EOL, $actions);
}
/**
* Get the additional actions added in survey_additional_teacher_modify_actions configuration
*
* @param int $surveyId
* @param int $iconSize
*
* @return string
*/
public static function getAdditionalTeacherActions($surveyId, $iconSize = ICON_SIZE_SMALL)
{
$additionalActions = api_get_configuration_value('survey_additional_teacher_modify_actions') ?: [];
if (empty($additionalActions)) {
return '';
}
$actions = [];
foreach ($additionalActions as $additionalAction) {
$actions[] = call_user_func(
$additionalAction,
['survey_id' => $surveyId, 'icon_size' => $iconSize]
);
}
return implode(PHP_EOL, $actions);
}
/**
* @param int $survey_id
*

Loading…
Cancel
Save