Some fixes when listing hot potatoes see #3186

skala
Julio Montoya 15 years ago
parent e290c54e37
commit 9eed61f5a5
  1. 237
      main/exercice/exercice.php
  2. 2
      main/exercice/exercise.lib.php
  3. 8
      main/inc/lib/sortabletable.class.php

@ -509,8 +509,11 @@ if ($show == 'test') {
} else {
// Only for students
$total_sql = "SELECT count(id) as count FROM $TBL_EXERCICES WHERE active = '1' $condition_session ";
$sql = "SELECT id, title, type, description, results_disabled, session_id, start_time, end_time, max_attempt FROM $TBL_EXERCICES WHERE active='1' $condition_session ORDER BY title LIMIT ".$from."," .$limit;
$sql = "SELECT id, title, type, description, results_disabled, session_id, start_time, end_time, max_attempt FROM $TBL_EXERCICES
WHERE active='1' $condition_session
ORDER BY title LIMIT ".$from."," .$limit;
}
$result = Database::query($sql);
$exercises_count = Database :: num_rows($result);
@ -524,20 +527,17 @@ if ($show == 'test') {
//get HotPotatoes files (active and inactive)
if ($is_allowedToEdit) {
$res = Database::query("SELECT * FROM $TBL_DOCUMENT WHERE path LIKE '" . Database :: escape_string($uploadPath) . "/%/%'");
$hp_count = Database :: num_rows($res);
$sql = "SELECT * FROM $TBL_DOCUMENT WHERE path LIKE '" . Database :: escape_string($uploadPath) . "/%/%'";
$res = Database::query($sql);
$hp_count = Database :: num_rows($res);
} else {
$res = Database::query("SELECT * FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
$res = Database::query("SELECT * FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
WHERE d.id = ip.ref AND ip.tool = '" . TOOL_DOCUMENT . "'
AND d.path LIKE '" . Database :: escape_string($uploadPath) . "/%/%'
AND ip.visibility='1'");
$hp_count = Database :: num_rows($res);
}
$total = $total_exercises + $hp_count;
//echo $total.' ' .$total_exercises.' '.$hp_count.' '.$from.' '.$limit.' '.$total/$limit.' '.ceil($total/$limit);
$hp_count = Database :: num_rows($res);
}
$total = $total_exercises + $hp_count;
}
if ($is_allowedToEdit && $origin != 'learnpath') {
@ -547,7 +547,7 @@ if ($is_allowedToEdit && $origin != 'learnpath') {
echo '<a href="hotpotatoes.php?' . api_get_cidreq() . '">' . Display :: return_icon('import_hotpotatoes.png', get_lang('ImportHotPotatoesQuiz'),'','32').'</a>';
// link to import qti2 ...
echo '<a href="qti2.php?' . api_get_cidreq() . '">' . Display :: return_icon('import_qti2.png', get_lang('ImportQtiQuiz'),'','32') .'</a>';
echo '<a href="upload_exercise.php?' . api_get_cidreq() . '">' . Display :: return_icon('import_excel.png', get_lang('ImportExcelQuiz'),'','32') .'</a>';
echo '<a href="upload_exercise.php?' . api_get_cidreq() . '">' . Display :: return_icon('import_excel.png', get_lang('ImportExcelQuiz'),'','32') .'</a>';
}
// the actions for the statistics
@ -590,8 +590,6 @@ if ($is_allowedToEdit && $origin != 'learnpath') {
//Student view
if ($show == 'result') {
echo '<a href="' . api_add_url_param($_SERVER['REQUEST_URI'], 'show=test') . '">' . Display :: return_icon('back.png', get_lang('GoBackToQuestionList'),'','32').'</a>';
} else {
//echo '<a href="' . api_get_self() .'?'.api_get_cidreq().'&show=result'.'">' . Display :: return_icon('test_results.png', get_lang('Results'),'',22) . get_lang('Results') . '</a>';
}
}
@ -651,17 +649,14 @@ if ($show == 'test') {
echo '</div>';
}
}
if ($show == 'test') {
?>
<script type="text/javascript">
$(function() {
/*
/*
$( "a", ".operations" ).button();
$(".tabs-left").tabs().addClass('ui-tabs-vertical ui-helper-clearfix');
$(".tabs-left li").removeClass('ui-corner-top').addClass('ui-corner-left');
$(".tabs-left li").removeClass('ui-corner-top').addClass('ui-corner-left');
*/
});
</script>
@ -677,8 +672,7 @@ if ($show == 'test') {
.ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: left; width: 40em;}
*/
</style>
</style>
<?php
$i =1;
$lis = '';
@ -697,13 +691,13 @@ if ($show == 'test') {
$lis.= Display::tag('li','<a href="#tabs-'.$i.'">'.$status.' '.$row['title'].'</a>');
$i++;*/
$exercise_list[] = $row;
}
if (!empty($exercise_list)) {
//echo '<div id="exercise_tabs" class="tabs-left">';
echo '<div style="float:left;width:100%">';
//echo Display::tag('ul', $lis);
}
echo '<table class="data_table">';
if (!empty($exercise_list)) {
//echo '<div id="exercise_tabs" class="tabs-left">';
//echo '<div style="float:left;width:100%">';
//echo Display::tag('ul', $lis);
/* Listing exercises */
if ($origin != 'learnpath') {
@ -714,7 +708,7 @@ if ($show == 'test') {
$token = Security::get_token();
$i=1;
echo '<table class="data_table">';
if ($is_allowedToEdit) {
$headers = array(get_lang('ExerciseName'), get_lang('QuantityQuestions'), get_lang('Actions'));
} else {
@ -729,9 +723,7 @@ if ($show == 'test') {
$count = 0;
if (!empty($exercise_list))
foreach ($exercise_list as $row) {
//echo '<div id="tabs-'.$i.'">';
//echo '<div id="tabs-'.$i.'">';
$i++;
//validacion when belongs to a session
$session_img = api_get_session_image($row['session_id'], $_user['status']);
@ -774,12 +766,8 @@ if ($show == 'test') {
}
// Teacher only
if ($is_allowedToEdit) {
$show_quiz_edition = true;
if ($is_allowedToEdit) {
$show_quiz_edition = true;
$table_lp_item = Database::get_course_table(TABLE_LP_ITEM);
$sql="SELECT max_score FROM $table_lp_item
WHERE item_type = '".TOOL_QUIZ."' AND path ='".Database::escape_string($row['id'])."'";
@ -800,8 +788,7 @@ if ($show == 'test') {
if ($session_id == $row['session_id']) {
//Settings
//echo Display::url(Display::return_icon('settings.png',get_lang('Edit'), array('width'=>'22px'))." ".get_lang('Edit'), 'exercise_admin.php?'.api_get_cidreq().'&modifyExercise=yes&exerciseId='.$row['id']);
}
}
//echo '<p>';
//echo $session_img;
if ($row['active'] == 0) {
@ -820,12 +807,9 @@ if ($show == 'test') {
if ($session_id == $row['session_id']) {
//Settings
//$actions = Display::url(Display::return_icon('edit.png',get_lang('Edit'),'',22), 'exercise_admin.php?'.api_get_cidreq().'&modifyExercise=yes&exerciseId='.$row['id']);
$actions = Display::url(Display::return_icon('edit.png',get_lang('Edit'),'',22), 'admin.php?'.api_get_cidreq().'&exerciseId='.$row['id']);
$actions .='<a href="exercice.php?' . api_get_cidreq() . '&show=result&exerciseId='.$row['id'].'">' . Display :: return_icon('test_results.png', get_lang('Results'),'',22).'</a>';
//$actions = Display::url(Display::return_icon('edit.png',get_lang('Edit'),'',22), 'exercise_admin.php?'.api_get_cidreq().'&modifyExercise=yes&exerciseId='.$row['id']);
$actions = Display::url(Display::return_icon('edit.png',get_lang('Edit'),'',22), 'admin.php?'.api_get_cidreq().'&exerciseId='.$row['id']);
$actions .='<a href="exercice.php?' . api_get_cidreq() . '&show=result&exerciseId='.$row['id'].'">' . Display :: return_icon('test_results.png', get_lang('Results'),'',22).'</a>';
//Export
$actions .= Display::url(Display::return_icon('cd.gif', get_lang('CopyExercise')), '', array('onclick'=>"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('AreYouSureToCopy'),ENT_QUOTES,$charset))." ".addslashes($row['title'])."?"."')) return false;",'href'=>'exercice.php?'.api_get_cidreq().'&choice=copy_exercise&sec_token='.$token.'&exerciseId='.$row['id']));
//Clean exercise
@ -958,8 +942,7 @@ if ($show == 'test') {
} else {
$attempt_text = get_lang('CantShowResults');
}
}
}
//User Attempts
/*
if (empty($row['max_attempt'])) {
@ -989,92 +972,93 @@ if ($show == 'test') {
$count++;
} // end foreach()
//Hotpotatoes results
if ($is_allowedToEdit) {
$sql = "SELECT d.path as path, d.comment as comment, ip.visibility as visibility
FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
WHERE d.id = ip.ref AND ip.tool = '" . TOOL_DOCUMENT . "' AND (d.path LIKE '%htm%')
AND d.path LIKE '" . Database :: escape_string($uploadPath) . "/%/%' LIMIT " .$from . "," .$limit; // only .htm or .html files listed
}
}
// end exercise list
//Hotpotatoes results
if ($is_allowedToEdit) {
$sql = "SELECT d.path as path, d.comment as comment, ip.visibility as visibility
FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
WHERE d.id = ip.ref AND ip.tool = '" . TOOL_DOCUMENT . "' AND (d.path LIKE '%htm%')
AND d.path LIKE '" . Database :: escape_string($uploadPath) . "/%/%' LIMIT " .$from . "," .$limit; // only .htm or .html files listed
} else {
$sql = "SELECT d.path as path, d.comment as comment, ip.visibility as visibility
FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
WHERE d.id = ip.ref AND ip.tool = '" . TOOL_DOCUMENT . "' AND (d.path LIKE '%htm%')
AND d.path LIKE '" . Database :: escape_string($uploadPath) . "/%/%' AND ip.visibility='1' LIMIT " .$from . "," .$limit;
}
$result = Database::query($sql);
while ($row = Database :: fetch_array($result, 'ASSOC')) {
$attribute['path'][] = $row['path'];
$attribute['visibility'][] = $row['visibility'];
$attribute['comment'][] = $row['comment'];
}
$nbrActiveTests = 0;
if (is_array($attribute['path'])) {
while (list ($key, $path) = each($attribute['path'])) {
$item = '';
list ($a, $vis) = each($attribute['visibility']);
if (strcmp($vis, "1") == 0) {
$active = 1;
} else {
$sql = "SELECT d.path as path, d.comment as comment, ip.visibility as visibility
FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
WHERE d.id = ip.ref AND ip.tool = '" . TOOL_DOCUMENT . "' AND (d.path LIKE '%htm%')
AND d.path LIKE '" . Database :: escape_string($uploadPath) . "/%/%' AND ip.visibility='1' LIMIT " .$from . "," .$limit;
$active = 0;
}
$result = Database::query($sql);
while ($row = Database :: fetch_array($result, 'ASSOC')) {
$attribute['path'][] = $row['path'];
$attribute['visibility'][] = $row['visibility'];
$attribute['comment'][] = $row['comment'];
$title = GetQuizName($path, $documentPath);
if ($title == '') {
$title = basename($path);
}
$nbrActiveTests = 0;
if (is_array($attribute['path'])) {
while (list ($key, $path) = each($attribute['path'])) {
$item = '';
list ($a, $vis) = each($attribute['visibility']);
if (strcmp($vis, "1") == 0) {
$active = 1;
} else {
$active = 0;
}
$title = GetQuizName($path, $documentPath);
if ($title == '') {
$title = basename($path);
}
$class = 'row_even';
if ($count % 2) {
$class = 'row_odd';
}
// prof only
if ($is_allowedToEdit) {
$item = Display::tag('td','<img src="../img/hotpotatoes_s.png" alt="HotPotatoes" /> <a href="showinframes.php?file='.$path.'&cid='.api_get_course_id().'&uid='.api_get_user_id().'"'.(!$active?'class="invisible"':'').'>'.$title.'</a> ');
$item .= Display::tag('td','-');
$actions = Display::url(Display::return_icon('edit.png',get_lang('Edit'),'',22), 'adminhp.php?'.api_get_cidreq().'&hotpotatoesName='.$path);
$actions .='<a href="exercice.php?' . api_get_cidreq() . '&show=result&path='.$path.'">' . Display :: return_icon('test_results.png', get_lang('Results'),'',22).'</a>';
// if active
if ($active) {
$nbrActiveTests = $nbrActiveTests +1;
$actions .= ' <a href="'.$exercicePath.'?'.api_get_cidreq().'&hpchoice=disable&amp;page='.$page.'&amp;file='.$path.'">'.Display::return_icon('visible.png', get_lang('Deactivate'),'',22).'</a>';
} else { // else if not active
$actions .=' <a href="'.$exercicePath.'?'.api_get_cidreq().'&hpchoice=enable&amp;page='.$page.'&amp;file='.$path.'">'.Display::return_icon('invisible.png', get_lang('Activate'),'',22).'</a>';
}
$actions .= '<a href="'.$exercicePath.'?'.api_get_cidreq().'&amp;hpchoice=delete&amp;file='.$path.'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang('AreYouSureToDelete'),ENT_QUOTES,$charset).' '.$title."?").'\')) return false;">'.Display::return_icon('delete.png', get_lang('Delete'),'',22).'</a>';
//$actions .='<img src="../img/lp_quiz_na.gif" border="0" title="'.get_lang('NotMarkActivity').'" alt="" />';
$item .= Display::tag('td', $actions);
echo Display::tag('tr',$item, array('class'=>$class));
} else { // student only
if ($active == 1) {
$nbrActiveTests = $nbrActiveTests +1;
$item .= Display::tag('td', '<a href="showinframes.php?'.api_get_cidreq().'&file='.$path.'&cid='.api_get_course_id().'&uid='.api_get_user_id().'"'.(!$active?'class="invisible"':'').'">'.$title.'</a>');
$item .= Display::tag('td', '');
//$item .= Display::tag('td', '');
$actions ='<a href="exercice.php?' . api_get_cidreq() . '&show=result&path='.$path.'">' . Display :: return_icon('test_results.png', get_lang('Results'),'',22).'</a>';
$item .= Display::tag('td', $actions);
echo Display::tag('tr',$item, array('class'=>$class));
}
}
$count ++;
$class = 'row_even';
if ($count % 2) {
$class = 'row_odd';
}
// prof only
if ($is_allowedToEdit) {
$item = Display::tag('td','<img src="../img/hotpotatoes_s.png" alt="HotPotatoes" /> <a href="showinframes.php?file='.$path.'&cid='.api_get_course_id().'&uid='.api_get_user_id().'"'.(!$active?'class="invisible"':'').'>'.$title.'</a> ');
$item .= Display::tag('td','-');
$actions = Display::url(Display::return_icon('edit.png',get_lang('Edit'),'',22), 'adminhp.php?'.api_get_cidreq().'&hotpotatoesName='.$path);
$actions .='<a href="exercice.php?' . api_get_cidreq() . '&show=result&path='.$path.'">' . Display :: return_icon('test_results.png', get_lang('Results'),'',22).'</a>';
// if active
if ($active) {
$nbrActiveTests = $nbrActiveTests +1;
$actions .= ' <a href="'.$exercicePath.'?'.api_get_cidreq().'&hpchoice=disable&amp;page='.$page.'&amp;file='.$path.'">'.Display::return_icon('visible.png', get_lang('Deactivate'),'',22).'</a>';
} else { // else if not active
$actions .=' <a href="'.$exercicePath.'?'.api_get_cidreq().'&hpchoice=enable&amp;page='.$page.'&amp;file='.$path.'">'.Display::return_icon('invisible.png', get_lang('Activate'),'',22).'</a>';
}
$actions .= '<a href="'.$exercicePath.'?'.api_get_cidreq().'&amp;hpchoice=delete&amp;file='.$path.'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang('AreYouSureToDelete'),ENT_QUOTES,$charset).' '.$title."?").'\')) return false;">'.Display::return_icon('delete.png', get_lang('Delete'),'',22).'</a>';
//$actions .='<img src="../img/lp_quiz_na.gif" border="0" title="'.get_lang('NotMarkActivity').'" alt="" />';
$item .= Display::tag('td', $actions);
echo Display::tag('tr',$item, array('class'=>$class));
} else { // student only
if ($active == 1) {
$nbrActiveTests = $nbrActiveTests +1;
$item .= Display::tag('td', '<a href="showinframes.php?'.api_get_cidreq().'&file='.$path.'&cid='.api_get_course_id().'&uid='.api_get_user_id().'"'.(!$active?'class="invisible"':'').'">'.$title.'</a>');
$item .= Display::tag('td', '');
//$item .= Display::tag('td', '');
$actions ='<a href="exercice.php?' . api_get_cidreq() . '&show=result&path='.$path.'">' . Display :: return_icon('test_results.png', get_lang('Results'),'',22).'</a>';
$item .= Display::tag('td', $actions);
echo Display::tag('tr',$item, array('class'=>$class));
}
}
echo '</table>';
echo '</div>';
}
} else {
$count ++;
}
//echo '</div>';
}
echo '</table>';
/*} else {
echo '<div style="float:left;width:100%">';
echo Display::display_warning_message(get_lang('NoExercises'));
echo '</div>';
}
}*/
Display :: display_footer();
exit;
}
@ -1114,11 +1098,10 @@ if ($show == 'result') {
$table->set_header(2, get_lang('Date'));
$table->set_header(3, get_lang('Score'),false);
$table->set_header(4, get_lang('Result'), false);
}
}
$table->display();
}
if ($origin != 'learnpath') { //so we are not in learnpath tool
Display :: display_footer();
}
}

@ -1141,7 +1141,7 @@ function get_exam_results_data($from, $number_of_items, $column, $direction) {
}
}
}
}
}
return $list_info;
}

@ -204,8 +204,10 @@ class SortableTable extends HTML_Table {
* Displays the table, complete with navigation buttons to browse through
* the data-pages.
*/
public function display () {
public function display() {
$empty_table = false;
$content = $this->get_table_html();
if ($this->get_total_number_of_items() == 0) {
$cols = $this->getColCount();
$this->setCellAttributes(1, 0, 'style="font-style: italic;text-align:center;" colspan='.$cols);
@ -253,7 +255,9 @@ class SortableTable extends HTML_Table {
$html .= '<form method="post" action="'.api_get_self().'?'.$params.'" name="form_'.$this->table_name.'">';
}
}
$html .= $this->get_table_html();
$html .= $content;
if (!$empty_table) {
$html .= '<table style="width:100%;">';
$html .= '<tr>';

Loading…
Cancel
Save