Minor - format code.

1.10.x
Julio Montoya 10 years ago
parent 1854bd6e41
commit 5914242d2e
  1. 370
      main/exercice/exercise.class.php
  2. 44
      main/exercice/exercise_admin.php

@ -1048,33 +1048,75 @@ class Exercise
$form->addElement('header', $form_title);
// Title.
$form->addElement('text', 'exerciseTitle', get_lang('ExerciseName'), array('class' => 'span6','id'=>'exercise_title'));
$form->addElement(
'text',
'exerciseTitle',
get_lang('ExerciseName'),
array('id' => 'exercise_title')
);
$form->addElement('advanced_settings', 'advanced_params', get_lang('AdvancedParameters'));
$form->addElement('html', '<div id="advanced_params_options" style="display:none">');
$editor_config = array('ToolbarSet' => 'TestQuestionDescription', 'Width' => '100%', 'Height' => '150');
$editor_config = array(
'ToolbarSet' => 'TestQuestionDescription',
'Width' => '100%',
'Height' => '150',
);
if (is_array($type)){
$editor_config = array_merge($editor_config, $type);
}
$form->addHtmlEditor('exerciseDescription', get_lang('ExerciseDescription'), false, false, $editor_config);
$form->addHtmlEditor(
'exerciseDescription',
get_lang('ExerciseDescription'),
false,
false,
$editor_config
);
if ($type == 'full') {
//Can't modify a DirectFeedback question
if ($this->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_DIRECT ) {
if ($this->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_DIRECT) {
// feedback type
$radios_feedback = array();
$radios_feedback[] = $form->createElement('radio', 'exerciseFeedbackType', null, get_lang('ExerciseAtTheEndOfTheTest'),'0',array('id' =>'exerciseType_0', 'onclick' => 'check_feedback()'));
$radios_feedback[] = $form->createElement(
'radio',
'exerciseFeedbackType',
null,
get_lang('ExerciseAtTheEndOfTheTest'),
'0',
array(
'id' => 'exerciseType_0',
'onclick' => 'check_feedback()',
)
);
if (api_get_setting('enable_quiz_scenario') == 'true') {
//Can't convert a question from one feedback to another if there is more than 1 question already added
if ($this->selectNbrQuestions() == 0) {
$radios_feedback[] = $form->createElement('radio', 'exerciseFeedbackType', null, get_lang('DirectFeedback'),'1',array('id' =>'exerciseType_1' , 'onclick' => 'check_direct_feedback()'));
$radios_feedback[] = $form->createElement(
'radio',
'exerciseFeedbackType',
null,
get_lang('DirectFeedback'),
'1',
array(
'id' => 'exerciseType_1',
'onclick' => 'check_direct_feedback()',
)
);
}
}
$radios_feedback[] = $form->createElement('radio', 'exerciseFeedbackType', null, get_lang('NoFeedback'),'2',array('id' =>'exerciseType_2'));
$radios_feedback[] = $form->createElement(
'radio',
'exerciseFeedbackType',
null,
get_lang('NoFeedback'),
'2',
array('id' => 'exerciseType_2')
);
$form->addGroup($radios_feedback, null, array(get_lang('FeedbackType'),get_lang('FeedbackDisplayOptions')), '');
// Type of results display on the final page
@ -1139,7 +1181,6 @@ class Exercise
$type_group = $form->addGroup($radios, null, get_lang('QuestionsPerPage'), '');
$type_group->freeze();
}
}
@ -1151,13 +1192,13 @@ class Exercise
$option[-1] = get_lang('AllQuestionsShort');
$form->addElement('select', 'randomQuestions',array(get_lang('RandomQuestions'), get_lang('RandomQuestionsHelp')), $option, array('id'=>'randomQuestions','class'=>'chzn-select'));
//random answers
// Random answers
$radios_random_answers = array();
$radios_random_answers[] = $form->createElement('radio', 'randomAnswers', null, get_lang('Yes'),'1');
$radios_random_answers[] = $form->createElement('radio', 'randomAnswers', null, get_lang('No'),'0');
$form->addGroup($radios_random_answers, null, get_lang('RandomAnswers'), '');
//randow by category
// Random by category
$form->addElement('html','<div class="clear">&nbsp;</div>');
$radiocat = array();
$radiocat[] = $form->createElement('radio', 'randomByCat', null, get_lang('YesWithCategoriesShuffled'),'1');
@ -1168,15 +1209,21 @@ class Exercise
// add the radio display the category name for student
$radio_display_cat_name = array();
$radio_display_cat_name[] = $form->createElement('radio', 'display_category_name', null, get_lang('Yes'),'1');
$radio_display_cat_name[] = $form->createElement('radio', 'display_category_name', null, get_lang('No'),'0');
$radio_display_cat_name[] = $form->createElement('radio', 'display_category_name', null, get_lang('Yes'), '1');
$radio_display_cat_name[] = $form->createElement('radio', 'display_category_name', null, get_lang('No'), '0');
$form->addGroup($radio_display_cat_name, null, get_lang('QuestionDisplayCategoryName'), '');
//Attempts
$attempt_option=range(0,10);
$attempt_option[0]=get_lang('Infinite');
// Attempts
$attempt_option = range(0, 10);
$attempt_option[0] = get_lang('Infinite');
$form->addElement('select', 'exerciseAttempts',get_lang('ExerciseAttempts'),$attempt_option, array('id'=>'exerciseAttempts','class'=>'chzn-select'));
$form->addElement(
'select',
'exerciseAttempts',
get_lang('ExerciseAttempts'),
$attempt_option,
array('id' => 'exerciseAttempts', 'class' => 'chzn-select')
);
// Exercise time limit
$form->addElement('checkbox', 'activate_start_date_check',null, get_lang('EnableStartTime'), array('onclick' => 'activate_start_date()'));
@ -1213,7 +1260,17 @@ class Exercise
//Timer control
//$time_hours_option = range(0,12);
//$time_minutes_option = range(0,59);
$form->addElement('checkbox', 'enabletimercontrol', null, get_lang('EnableTimerControl'), array('onclick' =>'option_time_expired()','id'=>'enabletimercontrol','onload'=>'check_load_time()'));
$form->addElement(
'checkbox',
'enabletimercontrol',
null,
get_lang('EnableTimerControl'),
array(
'onclick' => 'option_time_expired()',
'id' => 'enabletimercontrol',
'onload' => 'check_load_time()',
)
);
$expired_date = (int)$this->selectExpiredTime();
if (($expired_date!='0')) {
@ -1236,7 +1293,13 @@ class Exercise
$form->addRule('pass_percentage', get_lang('Numeric'), 'numeric');
// add the text_when_finished textbox
$form -> addHtmlEditor('text_when_finished', get_lang('TextWhenFinished'), false, false, $editor_config);
$form->addHtmlEditor(
'text_when_finished',
get_lang('TextWhenFinished'),
false,
false,
$editor_config
);
$defaults = array();
@ -1292,30 +1355,32 @@ class Exercise
$defaults['randomQuestions'] = $this->random;
}
$defaults['randomAnswers'] = $this->selectRandomAnswers();
$defaults['exerciseType'] = $this->selectType();
$defaults['exerciseTitle'] = $this->get_formated_title();
$defaults['exerciseDescription'] = $this->selectDescription();
$defaults['exerciseAttempts'] = $this->selectAttempts();
$defaults['exerciseFeedbackType'] = $this->selectFeedbackType();
$defaults['results_disabled'] = $this->selectResultsDisabled();
$defaults['propagate_neg'] = $this->selectPropagateNeg();
$defaults['review_answers'] = $this->review_answers;
$defaults['randomByCat'] = $this->selectRandomByCat(); //
$defaults['text_when_finished'] = $this->selectTextWhenFinished(); //
$defaults['display_category_name'] = $this->selectDisplayCategoryName(); //
$defaults['pass_percentage'] = $this->selectPassPercentage();
if (($this->start_time != '0000-00-00 00:00:00'))
$defaults['randomAnswers'] = $this->selectRandomAnswers();
$defaults['exerciseType'] = $this->selectType();
$defaults['exerciseTitle'] = $this->get_formated_title();
$defaults['exerciseDescription'] = $this->selectDescription();
$defaults['exerciseAttempts'] = $this->selectAttempts();
$defaults['exerciseFeedbackType'] = $this->selectFeedbackType();
$defaults['results_disabled'] = $this->selectResultsDisabled();
$defaults['propagate_neg'] = $this->selectPropagateNeg();
$defaults['review_answers'] = $this->review_answers;
$defaults['randomByCat'] = $this->selectRandomByCat();
$defaults['text_when_finished'] = $this->selectTextWhenFinished();
$defaults['display_category_name'] = $this->selectDisplayCategoryName();
$defaults['pass_percentage'] = $this->selectPassPercentage();
if (($this->start_time != '0000-00-00 00:00:00')) {
$defaults['activate_start_date_check'] = 1;
if ($this->end_time != '0000-00-00 00:00:00')
}
if ($this->end_time != '0000-00-00 00:00:00') {
$defaults['activate_end_date_check'] = 1;
}
$defaults['start_time'] = ($this->start_time!='0000-00-00 00:00:00') ? api_get_local_time($this->start_time) : date('Y-m-d 12:00:00');
$defaults['end_time'] = ($this->end_time!='0000-00-00 00:00:00') ? api_get_local_time($this->end_time) : date('Y-m-d 12:00:00', time()+84600);
$defaults['end_time'] = ($this->end_time!='0000-00-00 00:00:00') ? api_get_local_time($this->end_time) : date('Y-m-d 12:00:00', time()+84600);
//Get expired time
if($this->expired_time != '0') {
// Get expired time
if ($this->expired_time != '0') {
$defaults['enabletimercontrol'] = 1;
$defaults['enabletimercontroltotalminutes'] = $this->expired_time;
} else {
@ -1329,11 +1394,11 @@ class Exercise
$defaults['exerciseDescription'] = '';
$defaults['exerciseFeedbackType'] = 0;
$defaults['results_disabled'] = 0;
$defaults['randomByCat'] = 0; //
$defaults['text_when_finished'] = ""; //
$defaults['randomByCat'] = 0;
$defaults['text_when_finished'] = "";
$defaults['start_time'] = date('Y-m-d 12:00:00');
$defaults['display_category_name'] = 1; //
$defaults['end_time'] = date('Y-m-d 12:00:00',time()+84600);
$defaults['display_category_name'] = 1;
$defaults['end_time'] = date('Y-m-d 12:00:00', time()+84600);
$defaults['pass_percentage'] = '';
}
} else {
@ -1363,8 +1428,6 @@ class Exercise
}
$radioCatGroup->freeze();
//$form->freeze();
}
}
@ -1488,7 +1551,8 @@ class Exercise
if (api_get_setting('search_enabled')=='true' && extension_loaded('xapian')) {
$course_id = api_get_course_id();
// actually, it consists on delete terms from db, insert new ones, create a new search engine document, and remove the old one
// actually, it consists on delete terms from db,
// insert new ones, create a new search engine document, and remove the old one
// get search_did
$tbl_se_ref = Database::get_main_table(TABLE_MAIN_SEARCH_ENGINE_REF);
$sql = 'SELECT * FROM %s WHERE course_code=\'%s\' AND tool_id=\'%s\' AND ref_id_high_level=%s LIMIT 1';
@ -2036,117 +2100,117 @@ class Exercise
public function show_lp_javascript()
{
return "<script type=\"text/javascript\" src=\"../plugin/hotspot/JavaScriptFlashGateway.js\"></script>
<script src=\"../plugin/hotspot/hotspot.js\" type=\"text/javascript\"></script>
<script language=\"JavaScript\" type=\"text/javascript\">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 7;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
// the version of javascript supported
var jsVersion = 1.0;
// -----------------------------------------------------------------------------
// -->
</script>
<script language=\"VBScript\" type=\"text/vbscript\">
<!-- // Visual basic helper required to detect Flash Player ActiveX control version information
Function VBGetSwfVer(i)
on error resume next
Dim swControl, swVersion
swVersion = 0
set swControl = CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" + CStr(i))
if (IsObject(swControl)) then
swVersion = swControl.GetVariable(\"\$version\")
end if
VBGetSwfVer = swVersion
End Function
// -->
</script>
<script language=\"JavaScript1.1\" type=\"text/javascript\">
<!-- // Detect Client Browser type
var isIE = (navigator.appVersion.indexOf(\"MSIE\") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf(\"win\") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf(\"Opera\") != -1) ? true : false;
jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
// NS/Opera version >= 3 check for Flash plugin in plugin array
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins[\"Shockwave Flash 2.0\"] || navigator.plugins[\"Shockwave Flash\"]) {
var swVer2 = navigator.plugins[\"Shockwave Flash 2.0\"] ? \" 2.0\" : \"\";
var flashDescription = navigator.plugins[\"Shockwave Flash\" + swVer2].description;
descArray = flashDescription.split(\" \");
tempArrayMajor = descArray[2].split(\".\");
versionMajor = tempArrayMajor[0];
versionMinor = tempArrayMajor[1];
if ( descArray[3] != \"\" ) {
tempArrayMinor = descArray[3].split(\"r\");
} else {
tempArrayMinor = descArray[4].split(\"r\");
}
versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
flashVer = versionMajor + \".\" + versionMinor + \".\" + versionRevision;
<script src=\"../plugin/hotspot/hotspot.js\" type=\"text/javascript\"></script>
<script language=\"JavaScript\" type=\"text/javascript\">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 7;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
// the version of javascript supported
var jsVersion = 1.0;
// -----------------------------------------------------------------------------
// -->
</script>
<script language=\"VBScript\" type=\"text/vbscript\">
<!-- // Visual basic helper required to detect Flash Player ActiveX control version information
Function VBGetSwfVer(i)
on error resume next
Dim swControl, swVersion
swVersion = 0
set swControl = CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" + CStr(i))
if (IsObject(swControl)) then
swVersion = swControl.GetVariable(\"\$version\")
end if
VBGetSwfVer = swVersion
End Function
// -->
</script>
<script language=\"JavaScript1.1\" type=\"text/javascript\">
<!-- // Detect Client Browser type
var isIE = (navigator.appVersion.indexOf(\"MSIE\") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf(\"win\") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf(\"Opera\") != -1) ? true : false;
jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
// NS/Opera version >= 3 check for Flash plugin in plugin array
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins[\"Shockwave Flash 2.0\"] || navigator.plugins[\"Shockwave Flash\"]) {
var swVer2 = navigator.plugins[\"Shockwave Flash 2.0\"] ? \" 2.0\" : \"\";
var flashDescription = navigator.plugins[\"Shockwave Flash\" + swVer2].description;
descArray = flashDescription.split(\" \");
tempArrayMajor = descArray[2].split(\".\");
versionMajor = tempArrayMajor[0];
versionMinor = tempArrayMajor[1];
if ( descArray[3] != \"\" ) {
tempArrayMinor = descArray[3].split(\"r\");
} else {
flashVer = -1;
tempArrayMinor = descArray[4].split(\"r\");
}
}
// MSN/WebTV 2.6 supports Flash 4
else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.6\") != -1) flashVer = 4;
// WebTV 2.5 supports Flash 3
else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.5\") != -1) flashVer = 3;
// older WebTV supports Flash 2
else if (navigator.userAgent.toLowerCase().indexOf(\"webtv\") != -1) flashVer = 2;
// Can't detect in all other cases
else {
versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
flashVer = versionMajor + \".\" + versionMinor + \".\" + versionRevision;
} else {
flashVer = -1;
}
return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
reqVer = parseFloat(reqMajorVer + \".\" + reqRevision);
// loop backwards through the versions until we find the newest version
for (i=25;i>0;i--) {
if (isIE && isWin && !isOpera) {
versionStr = VBGetSwfVer(i);
// MSN/WebTV 2.6 supports Flash 4
else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.6\") != -1) flashVer = 4;
// WebTV 2.5 supports Flash 3
else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.5\") != -1) flashVer = 3;
// older WebTV supports Flash 2
else if (navigator.userAgent.toLowerCase().indexOf(\"webtv\") != -1) flashVer = 2;
// Can't detect in all other cases
else {
flashVer = -1;
}
return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
reqVer = parseFloat(reqMajorVer + \".\" + reqRevision);
// loop backwards through the versions until we find the newest version
for (i=25;i>0;i--) {
if (isIE && isWin && !isOpera) {
versionStr = VBGetSwfVer(i);
} else {
versionStr = JSGetSwfVer(i);
}
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(isIE && isWin && !isOpera) {
tempArray = versionStr.split(\" \");
tempString = tempArray[1];
versionArray = tempString .split(\",\");
} else {
versionStr = JSGetSwfVer(i);
versionArray = versionStr.split(\".\");
}
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(isIE && isWin && !isOpera) {
tempArray = versionStr.split(\" \");
tempString = tempArray[1];
versionArray = tempString .split(\",\");
} else {
versionArray = versionStr.split(\".\");
}
versionMajor = versionArray[0];
versionMinor = versionArray[1];
versionRevision = versionArray[2];
versionString = versionMajor + \".\" + versionRevision; // 7.0r24 == 7.24
versionNum = parseFloat(versionString);
// is the major.revision >= requested major.revision AND the minor version >= requested minor
if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
return true;
} else {
return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
}
versionMajor = versionArray[0];
versionMinor = versionArray[1];
versionRevision = versionArray[2];
versionString = versionMajor + \".\" + versionRevision; // 7.0r24 == 7.24
versionNum = parseFloat(versionString);
// is the major.revision >= requested major.revision AND the minor version >= requested minor
if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
return true;
} else {
return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
}
}
}
// -->
</script>";
}
// -->
</script>";
}
/**
@ -2928,10 +2992,10 @@ class Exercise
hotspot_question_id= '".$questionId."' AND
hotspot_answer_id='1'";
//by default we take 1 because it's a delineation
$resq = Database::query($query);
$row = Database::fetch_array($resq,'ASSOC');
$resq = Database::query($query);
$row = Database::fetch_array($resq,'ASSOC');
$choice = $row['hotspot_correct'];
$choice = $row['hotspot_correct'];
$user_answer = $row['hotspot_coordinate'];
// THIS is very important otherwise the poly_compile will throw an error!!
@ -2945,15 +3009,15 @@ class Exercise
$user_array = substr($user_array,0,-1);
} else {
if (!empty($studentChoice)) {
$newquestionList[]=$questionId;
$newquestionList[] = $questionId;
}
if ($answerId===1) {
$studentChoice =$choice[$answerId];
$questionScore +=$answerWeighting;
if ($answerId === 1) {
$studentChoice = $choice[$answerId];
$questionScore += $answerWeighting;
if ($hotspot_delineation_result[1]==1) {
$totalScore +=$answerWeighting; //adding the total
$totalScore += $answerWeighting; //adding the total
}
}
}

@ -95,12 +95,20 @@ $course_id = api_get_course_int_id();
//INIT FORM
if (isset($_GET['exerciseId'])) {
$form = new FormValidator('exercise_admin', 'post', api_get_self().'?'.api_get_cidreq().'&exerciseId='.intval($_GET['exerciseId']));
$form = new FormValidator(
'exercise_admin',
'post',
api_get_self().'?'.api_get_cidreq().'&exerciseId='.intval($_GET['exerciseId'])
);
$objExercise->read($_GET['exerciseId']);
$form->addElement('hidden','edit','true');
$form->addElement('hidden', 'edit', 'true');
} else {
$form = new FormValidator('exercise_admin','post',api_get_self().'?'.api_get_cidreq());
$form->addElement('hidden','edit','false');
$form = new FormValidator(
'exercise_admin',
'post',
api_get_self().'?'.api_get_cidreq()
);
$form->addElement('hidden', 'edit', 'false');
}
$objExercise->createForm($form);
@ -124,11 +132,20 @@ if ($form->validate()) {
}
if (!empty($gradebook) && $gradebook=='view') {
$interbreadcrumb[]= array ('url' => '../gradebook/'.$_SESSION['gradebook_dest'],'name' => get_lang('ToolGradebook'));
$interbreadcrumb[]= array (
'url' => '../gradebook/'.$_SESSION['gradebook_dest'],
'name' => get_lang('ToolGradebook')
);
}
$nameTools = get_lang('ExerciseManagement');
$interbreadcrumb[] = array("url"=>'exercise.php', 'name'=> get_lang('Exercises'));
$interbreadcrumb[] = array("url"=>"admin.php?exerciseId=".$objExercise->id, "name" => $objExercise->name);
$interbreadcrumb[] = array(
"url" => 'exercise.php?'.api_get_cidreq(),
'name' => get_lang('Exercises'),
);
$interbreadcrumb[] = array(
"url" => 'admin.php?exerciseId='.$objExercise->id.'&'.api_get_cidreq(),
"name" => $objExercise->name,
);
Display::display_header($nameTools, get_lang('Exercise'));
@ -140,21 +157,24 @@ if ($form->validate()) {
} else {
if (!empty($_GET['lp_id']) || !empty($_POST['lp_id'])){
if (!empty($_POST['lp_id'])){
$lp_id = intval($_POST['lp_id']);//TODO:this remains to be implemented after press the first post
$lp_id = intval($_POST['lp_id']);
//TODO:this remains to be implemented after press the first post
} else {
$lp_id = intval($_GET['lp_id']);
}
echo "<a href=\"../newscorm/lp_controller.php?".api_get_cidreq()."&gradebook=&action=add_item&type=step&lp_id=".$lp_id."#resource_tab-2\">".Display::return_icon('back.png', get_lang("BackTo").' '.get_lang("LearningPaths"),'',ICON_SIZE_MEDIUM)."</a>";
} else {
echo '<a href="exercise.php">' .
Display :: return_icon('back.png', get_lang('BackToExercisesList'),'',ICON_SIZE_MEDIUM).
echo '<a href="exercise.php?'.api_get_cidreq().'">' .
Display :: return_icon('back.png', get_lang('BackToExercisesList'), '', ICON_SIZE_MEDIUM).
'</a>';
}
}
echo '</div>';
if ($objExercise->feedback_type==1)
Display::display_normal_message(get_lang('DirectFeedbackCantModifyTypeQuestion'));
if ($objExercise->feedback_type == 1)
Display::display_normal_message(
get_lang('DirectFeedbackCantModifyTypeQuestion')
);
if (api_get_setting('search_enabled')=='true' && !extension_loaded('xapian')) {
Display::display_error_message(get_lang('SearchXapianModuleNotInstalled'));

Loading…
Cancel
Save