📄 surveymanager.lib.php
字号:
$gid = $obj_curr->group_id;
$num = mysql_num_rows($res_curr);
if($num>0) //the group name exists and the questions will be imported in this group.
{
$sql_ques = "SELECT * FROM $curr_dbname.questions WHERE gid = '$gid'";
$res_ques = api_sql_query($sql_ques);
$obj_ques = mysql_fetch_object($res_ques);
$count = mysql_num_rows($res_ques);
for($j=0;$j<$count;$j++)
{
$check_qid[] = mysql_result($res_ques,$j,"imported_question");
$check_db[] = mysql_result($res_ques,$j,"db_name");
}
$check_qid = @array_unique($check_qid);
$check_db = @array_unique($check_db);
$sql_old = "SELECT * FROM $db_name.questions WHERE gid = '$gid_arr[$i]'";
$res_old = api_sql_query($sql_old);
while($obj_old = mysql_fetch_object($res_old))
{
$caption1=addslashes($obj_old->caption);
$a1=addslashes($obj_old->a1);
$a2=addslashes($obj_old->a2);
$a3=addslashes($obj_old->a3);
$a4=addslashes($obj_old->a4);
$a5=addslashes($obj_old->a5);
$a6=addslashes($obj_old->a6);
$a7=addslashes($obj_old->a7);
$a8=addslashes($obj_old->a8);
$a9=addslashes($obj_old->a9);
$a10=addslashes($obj_old->a10);
$at=addslashes($obj_old->at);
$ad=addslashes($obj_old->ad);
$r1=addslashes($obj_old->r1);
$r2=addslashes($obj_old->r2);
$r3=addslashes($obj_old->r3);
$r4=addslashes($obj_old->r4);
$r5=addslashes($obj_old->r5);
$r6=addslashes($obj_old->r6);
$r7=addslashes($obj_old->r7);
$r8=addslashes($obj_old->r8);
$r9=addslashes($obj_old->r9);
$r10=addslashes($obj_old->r10);
$sql_sort = "SELECT max(sortby) AS sortby FROM $curr_dbname.questions ";
$res_sort=api_sql_query($sql_sort);
$rs=mysql_fetch_object($res_sort);
$sortby=$rs->sortby;
if(empty($sortby))
{$sortby=1;}
else{$sortby=$sortby+1;}
if(@in_array($obj_old->qid,$check_qid)&&@in_array($db_name,$check_db)) //the question has already been imported
{
$flag=1;
continue;
}
else
{
$sql_insertq = "INSERT INTO $curr_dbname.questions (qid, gid, survey_id, qtype, caption, alignment, sortby, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, at, ad, alt_text, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, imported_question, db_name) VALUES('', '$gid', '$sid', '$obj_old->qtype', '$caption1', '$obj_old->alignment', '$sortby', '$a1', '$a2', '$a3', '$a4', '$a5', '$a6', '$a7', '$a8', '$a9', '$a10', '$at', '$ad', '$alt_text', '$r1', '$r2', '$r3', '$r4', '$r5', '$r6', '$r7', '$r8', '$r9', '$r10', '$obj_old->qid', '$db_name')";
api_sql_query($sql_insertq);
}
}
}
else //the groupname does not exist. Create group with this name and insert questions in this new group.
{
$sql_insertg = "INSERT INTO $curr_dbname.survey_group (group_id, survey_id, groupname, introduction, imported_group, db_name, sortby) VALUES ('', '$sid', '$groupname', '$introduction', '$obj->group_id', '$db_name', $g_sortby)";
api_sql_query($sql_insertg);
$group_id = mysql_insert_id();
$sql_old = "SELECT * FROM $db_name.questions WHERE gid = '$gid_arr[$i]'";
$res_old = api_sql_query($sql_old);
while($obj_old = mysql_fetch_object($res_old))
{
$caption1=addslashes($obj_old->caption);
$a1=addslashes($obj_old->a1);
$a2=addslashes($obj_old->a2);
$a3=addslashes($obj_old->a3);
$a4=addslashes($obj_old->a4);
$a5=addslashes($obj_old->a5);
$a6=addslashes($obj_old->a6);
$a7=addslashes($obj_old->a7);
$a8=addslashes($obj_old->a8);
$a9=addslashes($obj_old->a9);
$a10=addslashes($obj_old->a10);
$at=addslashes($obj_old->at);
$ad=addslashes($obj_old->ad);
$r1=addslashes($obj_old->r1);
$r2=addslashes($obj_old->r2);
$r3=addslashes($obj_old->r3);
$r4=addslashes($obj_old->r4);
$r5=addslashes($obj_old->r5);
$r6=addslashes($obj_old->r6);
$r7=addslashes($obj_old->r7);
$r8=addslashes($obj_old->r8);
$r9=addslashes($obj_old->r9);
$r10=addslashes($obj_old->r10);
$sql_sort = "SELECT max(sortby) AS sortby FROM $curr_dbname.questions ";
$res_sort=api_sql_query($sql_sort);
$rs=mysql_fetch_object($res_sort);
$sortby=$rs->sortby;
if(empty($sortby))
{$sortby=1;}
else{$sortby=$sortby+1;}
$sql_insertq = "INSERT INTO $curr_dbname.questions (qid, gid, survey_id, qtype, caption, alignment, sortby, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, at, ad, alt_text, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, imported_question, db_name) VALUES('', '$group_id', '$sid', '$obj_old->qtype', '$caption1', '$obj_old->alignment', '$sortby', '$a1', '$a2', '$a3', '$a4', '$a5', '$a6', '$a7', '$a8', '$a9', '$a10', '$at', '$ad', '$obj_old->alt_text', '$r1', '$r2', '$r3', '$r4', '$r5', '$r6', '$r7', '$r8', '$r9', '$r10', '$obj_old->qid', '$db_name')";
api_sql_query($sql_insertq);
}
}
}
return ($flag);
}
/**
* Enter description here...
*
* @return unknown
* @todo remove this function because this is of no use and should not be used.
*/
function get_status()
{
global $_user;
$table_user = Database::get_main_table(TABLE_MAIN_USER);
$sqlm = "SELECT status FROM $table_user WHERE user_id = '".mysql_real_escape_string($_user['user_id'])."'";
$resm = api_sql_query($sqlm,__FILE__,__LINE__);
$objm=@mysql_fetch_object($resm);
$ss = $objm->status ;
return $ss;
}
function move_question($direction,$qid,$sort,$curr_dbname)
{
$questions=SurveyManager::get_questions_move($curr_dbname);
foreach ($questions as $key=>$value)
{
if ($qid==$value['qid'])
{
$source_course=$value;
if ($direction=="up")
{
$target_course=$questions[$key-1];
}
else
{$target_course=$questions[$key+1];}
}
}
$sql_update1="UPDATE $curr_dbname.questions SET sortby='".$target_course['sortby']."' WHERE qid='".$source_course['qid']."'";
$sql_update2="UPDATE $curr_dbname.questions SET sortby='".$source_course['sortby']."' WHERE qid='".$target_course['qid']."'";
mysql_query($sql_update2);
mysql_query($sql_update1);
//return ;
}
function get_questions_move($curr_dbname)
{
$sql_select_questions="SELECT * from $curr_dbname.questions order by `sortby` asc";
$result=mysql_query($sql_select_questions);
while ($row=mysql_fetch_array($result))
{
// we only need the database name of the course
$question1[]=array("caption"=> $row['caption'], "qid" => $row['qid'],"sortby" => $row['sortby']);
}
return $question1;
}
/**
* Displays a sortable table for the surveys
*
* @param unknown_type $groupid
* @param unknown_type $surveyid
* @param unknown_type $curr_dbname
* @param unknown_type $header
* @param unknown_type $content
* @param unknown_type $sorting_options
* @param unknown_type $paging_options
* @param unknown_type $query_vars
*
* @todo check if this function is needed as it seems that this is a copy of the Display::display_sortable_table function.
*/
function display_sortable_table($groupid,$surveyid,$curr_dbname,$header, $content, $sorting_options = array (), $paging_options = array (), $query_vars = null)
{
global $origin;
// Database table definitions
/** @todo use database constants for the survey tables */
$table_survey = Database :: get_course_table('survey');
$table_group = Database :: get_course_table('survey_group');
$table_question = Database :: get_course_table('questions');
$table_course = Database::get_main_table(TABLE_MAIN_COURSE);
$table_survey_group = Database :: get_course_table('survey_group');
require_once ('tablesort.lib.php');
if (!isset ($paging_options['per_page_default']))
{
$paging_options['per_page_default'] = 10;
}
if (!isset ($paging_options['page_nr']))
{
$paging_options['page_nr'] = (isset ($_GET['page_nr']) ? $_GET['page_nr'] : 1);
}
if (!isset ($paging_options['per_page']))
{
$paging_options['per_page'] = (isset ($_GET['per_page']) ? $_GET['per_page'] : $paging_options['per_page_default']);
}
if (!isset ($sorting_options['column']))
{
$sorting_options['column'] = (isset ($_GET['column']) ? $_GET['column'] : 0);
}
if (!isset ($sorting_options['direction']))
{
$sorting_options['direction'] = (isset ($_GET['direction']) ? $_GET['direction'] : SORT_ASC);
}
// Build the query_string
if (is_array($query_vars))
{
foreach ($query_vars as $key => $value)
{
$query_string .= '&'.urlencode($key).'='.urlencode($value);
}
}
$content = SurveyManager :: sort_table($content, $sorting_options['column'],'');
// Get data for selected page
$page_nav = '';
$page_content = array ();
$pages = array_chunk($content, intval($paging_options['per_page']));
if( $paging_options['page_nr'] > count($pages))
{
$paging_options['page_nr'] = count($pages);
}
$page_content = $pages[$paging_options['page_nr'] - 1];
// Build navigation bar
if (count($pages) > 1)
{
$page_nav = get_lang('Page').' : ';
if ($paging_options['page_nr'] > 1)
{
$page_nav .= '<a href="'.api_get_self().'?origin='.$origin.'&column='.$sorting_options['column'].'&direction='.$sorting_options['direction'].'&page_nr='. ($paging_options['page_nr'] - 1).'&per_page='.$paging_options['per_page'].''.$query_string.'">«</a> ';
}
for ($i = $paging_options['page_nr'] - 3; $i < $paging_options['page_nr']; $i ++)
{
if ($i > 0)
{
$page_nav .= '<a href="'.api_get_self().'?origin='.$origin.'&column='.$sorting_options['column'].'&direction='.$sorting_options['direction'].'&page_nr='.$i.'&per_page='.$paging_options['per_page'].''.$query_string.'">'.$i.'</a> ';
}
}
if ($i == $paging_options['page_nr'])
{
$page_nav .= '<b>'.$i.'</b> ';
}
for ($i = $paging_options['page_nr'] + 1; $i < $paging_options['page_nr'] + 4; $i ++)
{
if ($i <= count($pages))
{
$page_nav .= '<a href="'.api_get_self().'?origin='.$origin.'&column='.$sorting_options['column'].'&direction='.$sorting_options['direction'].'&page_nr='.$i.'&per_page='.$paging_options['per_page'].''.$query_string.'">'.$i.'</a> ';
}
}
if ($paging_options['page_nr'] < count($pages))
{
$page_nav .= '<a href="'.api_get_self().'?origin='.$origin.'&column='.$sorting_options['column'].'&direction='.$sorting_options['direction'].'&page_nr='. ($paging_options['page_nr'] + 1).'&per_page='.$paging_options['per_page'].''.$query_string.'">»</a> ';
}
}
$view_switch = '';
if (count($pages) == 1 && count($page_content) > $paging_options['per_page_default'])
{
$view_switch = ' <a href="'.api_get_self().'?origin='.$origin.'&column='.$sorting_options['column'].'&direction='.$sorting_options['direction'].'&page_nr=1&per_page='.$paging_options['per_page_default'].''.$query_string.'">'.get_lang('Show').' '.$paging_options['per_page_default'].'</a>';
}
elseif (count($pages) > 1)
{
$view_switch = ' <a href="'.api_get_self().'?origin='.$origin.'&column='.$sorting_options['column'].'&direction='.$sorting_options['direction'].'&page_nr=1&per_page='.count($content).''.$query_string.'">'.get_lang('ShowAll').'</a>';
}
$page_nav = '<table width="100%"><tr><td>'.$view_switch.'</td><td align="right">'.$page_nav.'</td></tr></table>';
// Determine new direction
$new_direction = ($sorting_options['direction'] == SORT_ASC ? SORT_DESC : SORT_ASC);
echo "\n";
echo $page_nav;
// Show the table
echo '<table class="data_table" width="100%">';
echo "\n";
echo '<tr>';
foreach ($header as $key => $value)
{
echo '<th '.$value[2].'>';
if ($value[1])
{
echo $value[0];
if ($sorting_options['column'] == $key)
{
echo $sorting_options['direction'] == SORT_ASC ? ' ↓ ' : ' ↑ ';
}
}
else
{
echo $value[0];
}
echo '</th>';
}
echo '</tr>';
echo "\n";
if( is_array($page_content))
{
$x=0;
$y=count($page_content);
$page_nr=$paging_options['page_nr'];
$per_page=$paging_options['per_page'];
$sql="SELECT * FROM $table_question WHERE survey_id = '$surveyid'";
$res1=api_sql_query($sql,__FILE__,__LINE__);
$num1=mysql_num_rows($res1);
$number_q=ceil($num1/10);
$sql_gr="SELECT * FROM $table_question WHERE gid='$groupid' AND survey_id = '$surveyid'";
$result_gr=api_sql_query($sql_gr,__FILE__,__LINE__);
$num_gr=mysql_num_rows($result_gr);
$questions=mysql_fetch_array($result_gr);
foreach ($page_content as $row => $data)
{
echo '<tr class="'. ($row % 2 == 0 ? 'row_even' : 'row_odd').'">';
foreach( $data as $column => $value)
{
echo '<td '.(isset($header[$column][3])? $header[$column][3] : '' ).'>';
if($x==0 && $page_nr==1)
{
echo str_replace('<img src="../img/up.gif" border="0" title="lang_move_up">',"",$value);
}
elseif(($page_nr==$number_q) && ($x==$y-1))
{
echo str_replace('<img src="../img/down.gif" border="0" title="lang_move_down">'," ",$value);
}
else{
echo $value;
}
echo '</td>';
}
echo '</tr>';
echo "\n";
$x++;
}
}
echo '</table>';
echo $page_nav;
}
function sort_table($data, $column = 0, $direction = SORT_ASC, $type = SOR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -