diff --git a/assets/vue/composables/document/documentActionButtons.js b/assets/vue/composables/document/documentActionButtons.js
index a1b49315d4..f3dfffc949 100644
--- a/assets/vue/composables/document/documentActionButtons.js
+++ b/assets/vue/composables/document/documentActionButtons.js
@@ -29,7 +29,7 @@ export function useDocumentActionButtons() {
if (isAllowedToEdit) {
if (!isCertificateMode.value) {
showNewDocumentButton.value = true
- showRecordAudioButton.value = "true" === platformConfigStore.getSetting("course.enable_record_audio")
+ showRecordAudioButton.value = true
showUploadButton.value = true
showNewFolderButton.value = true
showNewCloudFileButton.value = true // enable_add_file_link ?
diff --git a/public/main/exercise/exercise_show.php b/public/main/exercise/exercise_show.php
index 3384485261..9837fc4bf4 100644
--- a/public/main/exercise/exercise_show.php
+++ b/public/main/exercise/exercise_show.php
@@ -141,7 +141,7 @@ if (!$is_allowedToEdit) {
}
}
-$allowRecordAudio = 'true' === api_get_setting('enable_record_audio');
+$allowRecordAudio = true;
$allowTeacherCommentAudio = ('true' === api_get_setting('exercise.allow_teacher_comment_audio'));
//$js = '';
diff --git a/public/main/exercise/exercise_submit.php b/public/main/exercise/exercise_submit.php
index 67d34449b2..8016a92014 100644
--- a/public/main/exercise/exercise_submit.php
+++ b/public/main/exercise/exercise_submit.php
@@ -77,10 +77,8 @@ if ('true' === api_get_setting('exercise.quiz_prevent_copy_paste')) {
$htmlHeadXtra[] = '';
}
-if ('true' === api_get_setting('enable_record_audio')) {
- $htmlHeadXtra[] = '';
- $htmlHeadXtra[] = api_get_js('record_audio/record_audio.js');
-}
+$htmlHeadXtra[] = '';
+$htmlHeadXtra[] = api_get_js('record_audio/record_audio.js');
$zoomOptions = api_get_setting('exercise.quiz_image_zoom', true);
if (isset($zoomOptions['options']) && !in_array($origin, ['embeddable', 'mobileapp'])) {
diff --git a/public/main/exercise/question.class.php b/public/main/exercise/question.class.php
index 2e7715dc24..cc54ef952d 100644
--- a/public/main/exercise/question.class.php
+++ b/public/main/exercise/question.class.php
@@ -1097,10 +1097,6 @@ abstract class Question
*/
public static function get_question_type($type)
{
- if (ORAL_EXPRESSION == $type && 'true' !== api_get_setting('enable_record_audio')) {
- return null;
- }
-
return self::$questionTypes[$type];
}
@@ -1109,10 +1105,6 @@ abstract class Question
*/
public static function getQuestionTypeList()
{
- if ('true' !== api_get_setting('enable_record_audio')) {
- self::$questionTypes[ORAL_EXPRESSION] = null;
- unset(self::$questionTypes[ORAL_EXPRESSION]);
- }
if ('true' !== api_get_setting('enable_quiz_scenario')) {
self::$questionTypes[HOT_SPOT_DELINEATION] = null;
unset(self::$questionTypes[HOT_SPOT_DELINEATION]);
diff --git a/public/main/exercise/question_list_admin.inc.php b/public/main/exercise/question_list_admin.inc.php
index 591063d9dd..c0bc38ff52 100644
--- a/public/main/exercise/question_list_admin.inc.php
+++ b/public/main/exercise/question_list_admin.inc.php
@@ -144,11 +144,11 @@ if (isset($exerciseId) && $exerciseId > 0) {
// In building mode show all questions not render by teacher order.
$objExercise->questionSelectionType = EX_Q_SELECTION_ORDERED;
$allowQuestionOrdering = true;
- $showPagination = api_get_setting('exercise.show_question_pagination');
- $length = api_get_setting('exercise.question_pagination_length');
+ $showPagination = 'true' === api_get_setting('exercise.show_question_pagination');
+ $length = (int) api_get_setting('exercise.question_pagination_length') ?: 30;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
- if (!empty($showPagination) && $nbrQuestions > $showPagination) {
+ if ($showPagination && $nbrQuestions > $length) {
$allowQuestionOrdering = false;
$start = ($page - 1) * $length;
$questionList = $objExercise->selectQuestionList(true, true);
@@ -310,13 +310,15 @@ if (isset($exerciseId) && $exerciseId > 0) {
echo ''; //question list div
// Pagination navigation
- $totalPages = ceil($nbrQuestions / $length);
- echo '
';
} else {
echo Display::return_message(get_lang('Questions list (there is no question so far).'), 'warning');
}
diff --git a/public/main/inc/lib/exercise.lib.php b/public/main/inc/lib/exercise.lib.php
index 918f890dc9..c79021e061 100644
--- a/public/main/inc/lib/exercise.lib.php
+++ b/public/main/inc/lib/exercise.lib.php
@@ -201,15 +201,13 @@ class ExerciseLib
break;
case ORAL_EXPRESSION:
// Add nanog
- if ('true' === api_get_setting('enable_record_audio')) {
- //@todo pass this as a parameter
- global $exercise_stat_info;
- if (!empty($exercise_stat_info)) {
- echo $objQuestionTmp->returnRecorder((int) $exercise_stat_info['exe_id']);
- $generatedFile = self::getOralFileAudio($exercise_stat_info['exe_id'], $questionId);
- if (!empty($generatedFile)) {
- echo $generatedFile;
- }
+ //@todo pass this as a parameter
+ global $exercise_stat_info;
+ if (!empty($exercise_stat_info)) {
+ echo $objQuestionTmp->returnRecorder((int) $exercise_stat_info['exe_id']);
+ $generatedFile = self::getOralFileAudio($exercise_stat_info['exe_id'], $questionId);
+ if (!empty($generatedFile)) {
+ echo $generatedFile;
}
}
diff --git a/public/main/install/profiles/prod.json b/public/main/install/profiles/prod.json
index 428be66c4d..3977aba7c9 100644
--- a/public/main/install/profiles/prod.json
+++ b/public/main/install/profiles/prod.json
@@ -43,11 +43,6 @@
"subkey": "",
"selected_value": "true"
},
- {
- "variable": "enabled_text2audio",
- "subkey": "",
- "selected_value": "true"
- },
{
"variable": "gradebook_score_display_coloring",
"subkey": "",
@@ -59,4 +54,4 @@
"selected_value": "true"
}
]
-}
\ No newline at end of file
+}
diff --git a/public/main/lp/lp_add_audio.php b/public/main/lp/lp_add_audio.php
index 3838c1227c..07fd028901 100644
--- a/public/main/lp/lp_add_audio.php
+++ b/public/main/lp/lp_add_audio.php
@@ -132,7 +132,7 @@ $tpl = new Template(get_lang('Add'));
$tpl->assign('unique_file_id', api_get_unique_id());
$tpl->assign('course_code', api_get_course_id());
$tpl->assign('filename', $lp_item->get_title().'_nano.wav');
-$tpl->assign('enable_record_audio', 'true' === api_get_setting('enable_record_audio'));
+$tpl->assign('enable_record_audio', true);
$tpl->assign('cur_dir_path', '/audio');
$tpl->assign('lp_item_id', $lp_item_id);
//$tpl->assign('lp_dir', api_remove_trailing_slash($lpPathInfo['dir']));
diff --git a/src/CoreBundle/Controller/PlatformConfigurationController.php b/src/CoreBundle/Controller/PlatformConfigurationController.php
index c54e5b6450..5179d8c03c 100644
--- a/src/CoreBundle/Controller/PlatformConfigurationController.php
+++ b/src/CoreBundle/Controller/PlatformConfigurationController.php
@@ -76,7 +76,6 @@ class PlatformConfigurationController extends AbstractController
'course.course_validation',
'course.student_view_enabled',
'course.allow_edit_tool_visibility_in_session',
- 'course.enable_record_audio',
'session.limit_session_admin_role',
'session.allow_session_admin_read_careers',
'session.limit_session_admin_list_users',
diff --git a/src/CoreBundle/DataFixtures/SettingsCurrentFixtures.php b/src/CoreBundle/DataFixtures/SettingsCurrentFixtures.php
index 79a7b421e8..d60d436d8a 100644
--- a/src/CoreBundle/DataFixtures/SettingsCurrentFixtures.php
+++ b/src/CoreBundle/DataFixtures/SettingsCurrentFixtures.php
@@ -363,11 +363,6 @@ class SettingsCurrentFixtures extends Fixture implements FixtureGroupInterface
'title' => 'Courses custom icons',
'comment' => 'Use course images as the course icon in courses lists (instead of the default green blackboard icon).',
],
- [
- 'name' => 'enable_record_audio',
- 'title' => 'Enable audio recorder',
- 'comment' => 'Enables the WebRTC (flashless) audio recorder at several locations inside Chamilo',
- ],
[
'name' => 'hide_scorm_copy_link',
'title' => 'Hide SCORM Copy',
@@ -816,11 +811,6 @@ class SettingsCurrentFixtures extends Fixture implements FixtureGroupInterface
'title' => 'Enable Webcam Clip',
'comment' => 'Webcam Clip allow to users capture images from his webcam and send them to server in JPEG (.jpg or .jpeg) format',
],
- [
- 'name' => 'enabled_text2audio',
- 'title' => 'Enable online services for text to speech conversion',
- 'comment' => 'Online tool to convert text to speech. Uses speech synthesis technology to generate audio files saved into your course.',
- ],
[
'name' => 'pdf_export_watermark_by_course',
'title' => 'Enable watermark definition by course',
diff --git a/src/CoreBundle/Migrations/Schema/V200/Version20170627122900.php b/src/CoreBundle/Migrations/Schema/V200/Version20170627122900.php
index 7a1ab61ce8..acddc37f96 100644
--- a/src/CoreBundle/Migrations/Schema/V200/Version20170627122900.php
+++ b/src/CoreBundle/Migrations/Schema/V200/Version20170627122900.php
@@ -205,7 +205,6 @@ class Version20170627122900 extends AbstractMigrationChamilo
'server_type' => 'platform',
'show_official_code_whoisonline' => 'profile',
'show_terms_if_profile_completed' => 'ticket',
- 'enable_record_audio' => 'course',
'add_users_by_coach' => 'session',
'allow_captcha' => 'security',
'allow_coach_to_edit_course_session' => 'session',
@@ -236,7 +235,6 @@ class Version20170627122900 extends AbstractMigrationChamilo
'enable_webcam_clip' => 'document',
'enabled_support_pixlr' => 'editor',
'enabled_support_svg' => 'editor',
- 'enabled_text2audio' => 'document',
'extend_rights_for_coach' => 'session',
'extend_rights_for_coach_on_survey' => 'survey',
'hide_course_group_if_no_tools_available' => 'group',
diff --git a/src/CoreBundle/Settings/CourseSettingsSchema.php b/src/CoreBundle/Settings/CourseSettingsSchema.php
index 916c932c3f..c611b340c0 100644
--- a/src/CoreBundle/Settings/CourseSettingsSchema.php
+++ b/src/CoreBundle/Settings/CourseSettingsSchema.php
@@ -85,7 +85,6 @@ class CourseSettingsSchema extends AbstractSettingsSchema
'course_images_in_courses_list' => 'true',
'teacher_can_select_course_template' => 'true',
'show_toolshortcuts' => '',
- 'enable_record_audio' => 'false',
'lp_show_reduced_report' => 'false',
'course_creation_splash_screen' => 'true',
'block_registered_users_access_to_open_course_contents' => 'false',
@@ -246,7 +245,6 @@ class CourseSettingsSchema extends AbstractSettingsSchema
->add('course_images_in_courses_list', YesNoType::class)
->add('teacher_can_select_course_template', YesNoType::class)
->add('show_toolshortcuts', YesNoType::class)
- ->add('enable_record_audio', YesNoType::class)
->add('lp_show_reduced_report', YesNoType::class)
->add('course_creation_splash_screen', YesNoType::class)
->add('block_registered_users_access_to_open_course_contents', YesNoType::class)
diff --git a/src/CoreBundle/Settings/DocumentSettingsSchema.php b/src/CoreBundle/Settings/DocumentSettingsSchema.php
index 4ff0114882..b6c3797469 100644
--- a/src/CoreBundle/Settings/DocumentSettingsSchema.php
+++ b/src/CoreBundle/Settings/DocumentSettingsSchema.php
@@ -39,8 +39,6 @@ class DocumentSettingsSchema extends AbstractSettingsSchema
'students_export2pdf' => 'true',
'show_users_folders' => 'true',
'show_default_folders' => 'true',
- 'enabled_text2audio' => 'false',
- // 'enable_nanogong' => 'false',
'show_documents_preview' => 'false',
'enable_webcam_clip' => 'false',
'tool_visible_by_default_at_creation' => [
@@ -121,7 +119,6 @@ class DocumentSettingsSchema extends AbstractSettingsSchema
->add('students_export2pdf', YesNoType::class)
->add('show_users_folders', YesNoType::class)
->add('show_default_folders', YesNoType::class)
- ->add('enabled_text2audio', YesNoType::class)
// ->add('enable_nanogong', YesNoType::class)
->add('show_documents_preview', YesNoType::class)
->add('enable_webcam_clip', YesNoType::class)
diff --git a/src/CoreBundle/Settings/SettingsManager.php b/src/CoreBundle/Settings/SettingsManager.php
index b4db2b7831..d46bfbf71f 100644
--- a/src/CoreBundle/Settings/SettingsManager.php
+++ b/src/CoreBundle/Settings/SettingsManager.php
@@ -652,7 +652,6 @@ class SettingsManager implements SettingsManagerInterface
'show_users_folders' => 'Tools',
'show_default_folders' => 'Tools',
'show_chat_folder' => 'Tools',
- 'enabled_text2audio' => 'Tools',
'course_hide_tools' => 'Course',
'enabled_support_pixlr' => 'Tools',
'show_groups_to_users' => 'Session',
@@ -791,7 +790,6 @@ class SettingsManager implements SettingsManagerInterface
'messaging_gdc_project_number' => 'WebServices',
'messaging_gdc_api_key' => 'WebServices',
'teacher_can_select_course_template' => 'Course',
- 'enable_record_audio' => 'Tools',
'allow_show_skype_account' => 'Platform',
'allow_show_linkedin_url' => 'Platform',
'enable_profile_user_address_geolocalization' => 'User',
@@ -953,8 +951,6 @@ class SettingsManager implements SettingsManagerInterface
'enabled_support_svg' => 'editor',
'enabled_support_pixlr' => 'editor',
'enable_webcam_clip' => 'document',
- 'enable_record_audio' => 'course',
- 'enabled_text2audio' => 'document',
'permanently_remove_deleted_files' => 'document',
'allow_delete_attendance' => 'attendance',
'display_groups_forum_in_general_tool' => 'forum',