surveymanager.lib.php 66 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854
  1. <?php // $Id: usermanager.lib.php,v 1.9.2.3 2005/10/28 14:31:45 bmol Exp $
  2. /*
  3. =====================================================Gh9Xp5m=========================
  4. Dokeos - elearning and course management software
  5. Copyright (c) 2004 Dokeos S.A.
  6. Copyright (c) 2003 University of Ghent (UGent)
  7. Copyright (c) 2001 Universite catholique de Louvain (UCL)
  8. Copyright (c) various contributors
  9. For a full list of contributors, see "credits.txt".
  10. The full license can be read in "license.txt".
  11. This program is free software; you can redistribute it and/or
  12. modify it under the terms of the GNU General Public License
  13. as published by the Free Software Foundation; either version 2
  14. of the License, or (at your option) any later version.
  15. See the GNU General Public License for more details.
  16. Contact: Dokeos, 181 rue Royale, B-1000 Brussels, Belgium, info@dokeos.com
  17. ==============================================================================
  18. */
  19. /**
  20. ==============================================================================
  21. * This library provides functions for user management.
  22. * Include/require it in your code to use its functionality.
  23. *
  24. * @author Bart Mollet, main author
  25. * @package dokeos.library
  26. ==============================================================================
  27. */
  28. class SurveyManager
  29. {
  30. /**
  31. * Creates a new survey for the platform
  32. */
  33. function select_survey_list($seleced_surveyid='', $extra_script='')
  34. {
  35. $survey_table = Database :: get_course_table('survey');
  36. $sql = "SELECT * FROM $survey_table";// WHERE is_shared='1'";
  37. $sql_result = api_sql_query($sql,__FILE__,__LINE__);
  38. if(mysql_num_rows($sql_result)>0)
  39. {
  40. $str_survey_list = "";
  41. $str_survey_list .= "<select name=\"exiztingsurvey\" $extra_script>\n";
  42. $str_survey_list .= "<option value=\"\">--Select Survey--</option>";
  43. while($result=mysql_fetch_array($sql_result))
  44. {
  45. $selected = ($seleced_surveyid==$result[survey_id])?"selected":"";
  46. $str_survey_list .= "\n<option value=\"".$result[survey_id]."\" ".$selected.">".$result[title]."</option>";
  47. }
  48. $str_survey_list .= "</select>";
  49. return $str_survey_list;
  50. }
  51. else
  52. {
  53. return false;
  54. }
  55. }
  56. /*function getsurveyid($existing)
  57. {
  58. $survey_table = Database :: get_course_table(TABLE_MAIN_SURVEY);
  59. $sql = "SELECT survey_id FROM $survey_table WHERE title='$existing'" ;
  60. $result = api_sql_query($sql,__FILE__,__LINE__);
  61. $i=0;
  62. $survey_id=mysql_result($result,$i,'survey_id');
  63. echo "in getsurveyid".$survey_id;
  64. return(survey_id);
  65. }
  66. */
  67. function create_group($survey_id,$group_title,$introduction,$table_group)
  68. {
  69. $sql_query = "SELECT * FROM $table_group where groupname='".$group_title."' AND survey_id=".intval($survey_id);
  70. $res = api_sql_query($sql_query, __FILE__, __LINE__);
  71. if(mysql_num_rows($res))
  72. {
  73. return false;
  74. }
  75. else
  76. {
  77. $sql = 'SELECT MAX(sortby) FROM '.$table_group.' WHERE survey_id="'.$survey_id.'"';
  78. $rs = api_sql_query($sql, __FILE__, __LINE__);
  79. list($sortby) = mysql_fetch_array($rs);
  80. $sortby++;
  81. $sql="INSERT INTO $table_group(group_id,survey_id,groupname,introduction, sortby) values('','$survey_id','$group_title','$introduction','$sortby')";
  82. $result=api_sql_query($sql);
  83. return mysql_insert_id();
  84. }
  85. }
  86. function get_survey_author($authorid)
  87. {
  88. $user_table = Database :: get_main_table(TABLE_MAIN_USER);
  89. $sql_query = "SELECT * FROM $user_table where user_id='$authorid'";
  90. $res = api_sql_query($sql_query, __FILE__, __LINE__);
  91. $firstname=@mysql_result($res,0,'firstname');
  92. return $firstname;
  93. }
  94. function get_author($db_name,$survey_id)
  95. {
  96. //$table_survey = Database :: get_course_table('survey');
  97. $sql = "SELECT author FROM $db_name.survey WHERE survey_id='$survey_id'";
  98. $res = api_sql_query($sql, __FILE__, __LINE__);
  99. $author=@mysql_result($res,0,'author');
  100. return $author;
  101. }
  102. function get_surveyid($db_name,$group_id)
  103. {
  104. //$group_table = Database :: get_course_table('survey_group');
  105. $sql = "SELECT survey_id FROM $db_name.survey_group WHERE group_id='$group_id'";
  106. $res = api_sql_query($sql, __FILE__, __LINE__);
  107. $surveyid=@mysql_result($res,0,'survey_id');
  108. return $surveyid;
  109. }
  110. /*function get_survey_code($table_survey,$survey_code)
  111. {
  112. $sql="SELECT code FROM $table_survey where code='$survey_code'";
  113. $result=api_sql_query($sql);
  114. $code=mysql_result($result,0,'code');
  115. return($code);
  116. }*/
  117. function get_groupname($db_name,$gid)
  118. {
  119. //$grouptable = Database :: get_course_table('survey_group');
  120. $sql = "SELECT * FROM $db_name.survey_group WHERE group_id='$gid'";
  121. $res=api_sql_query($sql);
  122. $code=@mysql_result($res,0,'groupname');
  123. return($code);
  124. }
  125. function insert_into_group($survey_id,$group_title,$introduction,$tb)
  126. {
  127. $sql="INSERT INTO $tb(group_id,survey_id,group_title,introduction) values('','$survey_id','$group_title','$introduction')";
  128. $result=api_sql_query($sql);
  129. return mysql_insert_id();
  130. }
  131. function get_survey_code($table_survey,$survey_code)
  132. {
  133. $sql="SELECT code FROM $table_survey where code='$survey_code'";
  134. //echo $sql;
  135. //exit;
  136. $result=api_sql_query($sql);
  137. $code=@mysql_result($result,0,'code');
  138. //echo $code;exit;
  139. return($code);
  140. }
  141. function get_survey_list()
  142. {
  143. $survey_table = Database :: get_course_table('survey');
  144. $sql_query = "SELECT survey_id,title FROM $survey_table where title!='' ";
  145. $sql_result = api_sql_query($sql_query,__FILE__,__LINE__);
  146. echo "<select name=\"author\">";
  147. echo "<option value=\"\"><--Select Survey--></optional>";
  148. while ($result =@mysql_fetch_array($sql_result))
  149. {
  150. echo "\n<option value=\"".$result[survey_id]."\">".$result[title]."</option>";
  151. }
  152. echo "</select>";
  153. }
  154. function create_survey($surveycode,$surveytitle, $surveysubtitle, $author, $survey_language, $availablefrom, $availabletill,$isshare, $surveytemplate, $surveyintroduction, $surveythanks, $table_survey, $table_group)
  155. {
  156. //$table_survey = Database :: get_course_table('survey');
  157. $sql = "INSERT INTO $table_survey (code,title, subtitle, author,lang,avail_from,avail_till, is_shared,template,intro,surveythanks,creation_date) values('$surveycode','$surveytitle','$surveysubtitle','$author','$survey_language','$availablefrom','$availabletill','$isshare','$surveytemplate','$surveyintroduction','$surveythanks',curdate())";
  158. $result = api_sql_query($sql, __FILE__, __LINE__);
  159. //$result = api_sql_query($sql);
  160. $survey_id = mysql_insert_id();
  161. $sql2 = "INSERT INTO $table_group(group_id,survey_id,groupname,introduction) values('','$survey_id','No Group','This is your Default Group')";
  162. $result = api_sql_query($sql2, __FILE__, __LINE__);
  163. return $survey_id;
  164. }
  165. function create_survey_in_another_language($id, $lang){
  166. global $_course;
  167. $original_survey = SurveyManager::get_all_datas($id);
  168. // copy the survey itself
  169. $sql = 'INSERT INTO '.$_course['dbName'].'.survey SET
  170. code = "'.$original_survey->code.'",
  171. title = "'.addslashes($original_survey->title).'",
  172. subtitle = "'.addslashes($original_survey->subtitle).'",
  173. author = "'.$original_survey->author.'",
  174. lang = "'.$lang.'",
  175. avail_from = "'.$original_survey->avail_from.'",
  176. avail_till = "'.$original_survey->avail_till.'",
  177. is_shared = "'.$original_survey->is_shared.'",
  178. template = "'.$original_survey->template.'",
  179. intro = "'.addslashes($original_survey->intro).'",
  180. surveythanks = "'.addslashes($original_survey->surveythanks).'",
  181. creation_date = "NOW()"';
  182. $result = api_sql_query($sql, __FILE__, __LINE__);
  183. $new_survey_id = mysql_insert_id();
  184. // copy the groups
  185. $groups = SurveyManager::listGroups($id);
  186. foreach($groups as $group){
  187. SurveyManager::import_group($new_survey_id, $group['group_id'], $_course['dbName'], $_course['dbName']);
  188. }
  189. }
  190. function create_survey_attach($surveycode,$surveytitle, $surveysubtitle, $author, $survey_language, $availablefrom, $availabletill,$isshare, $surveytemplate, $surveyintroduction, $surveythanks, $table_survey, $table_group)
  191. {
  192. //$table_survey = Database :: get_course_table('survey');
  193. $sql = "INSERT INTO $table_survey (code,title, subtitle, author,lang,avail_from,avail_till, is_shared,template,intro,surveythanks,creation_date) values('$surveycode','$surveytitle','$surveysubtitle','$author','$survey_language','$availablefrom','$availabletill','$isshare','$surveytemplate','$surveyintroduction','$surveythanks',curdate())";
  194. $result = api_sql_query($sql, __FILE__, __LINE__);
  195. $survey_id = mysql_insert_id();
  196. return $survey_id;
  197. }
  198. function update_survey($surveyid,$surveycode,$surveytitle, $surveysubtitle, $author, $survey_language, $availablefrom, $availabletill,$isshare, $surveytemplate, $surveyintroduction, $surveythanks, $cidReq,$table_course)
  199. {
  200. $sql_course = "SELECT * FROM $table_course WHERE code = '$cidReq'";
  201. $res_course = api_sql_query($sql_course,__FILE__,__LINE__);
  202. $obj_course=@mysql_fetch_object($res_course);
  203. $curr_dbname = $obj_course->db_name ;
  204. $sql = "UPDATE $curr_dbname.survey SET code='$surveycode', title='$surveytitle', subtitle='$surveysubtitle', lang='$survey_language', avail_from='$availablefrom', avail_till='$availabletill', is_shared='$isshare', template='$surveytemplate', intro='$surveyintroduction',surveythanks='$surveythanks' WHERE survey_id='$surveyid'";
  205. api_sql_query($sql, __FILE__, __LINE__);
  206. return $curr_dbname;
  207. }
  208. /*
  209. function create_question($gid,$type,$caption,$answers,$open_ans,$answerT,$answerD,$rating,$table_question)
  210. {
  211. for($i=0;$i<10;$i++)
  212. {
  213. $x.= "'".$answers[$i]."',";
  214. }
  215. //echo "Hello".$x;
  216. for($j=0;$j<10;$j++)
  217. {
  218. if($j==9)
  219. {
  220. $y.= "'".$rating[$j]."'";
  221. }
  222. else
  223. {
  224. $y.= "'".$rating[$j]."',";
  225. }
  226. }
  227. $anst = implode(", " ,$answerT);
  228. $ansd = implode(", " ,$answerD);
  229. $table_question = Database :: get_course_table(TABLE_MAIN_SURVEYQUESTION);
  230. $sql = "INSERT INTO $table_question (gid,type,caption,ans1,ans2,ans3,ans4,ans5,ans6,ans7,ans8,ans9,ans10,open_ans,anst,ansd,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) values('$gid','$type','$caption',$x'$open_ans','$anst','$ansd',$y)";
  231. $result = api_sql_query($sql);
  232. return mysql_insert_id();
  233. }
  234. function get_question($questionid)
  235. {
  236. $table_question = Database :: get_course_table(TABLE_MAIN_SURVEYQUESTION);
  237. $sql = "SELECT * FROM $table_question where qid='$questionid'";
  238. $res=api_sql_query($sql);
  239. $code=@mysql_result($res,0,'caption');
  240. return($code);
  241. }
  242. */
  243. function create_question($gid,$surveyid,$qtype,$caption,$alignment,$answers,$open_ans,$answerT,$answerD,$rating,$curr_dbname)
  244. {
  245. $sql_sort = "SELECT max(sortby) AS sortby FROM $curr_dbname.questions ";
  246. $res_sort=api_sql_query($sql_sort);
  247. $rs=mysql_fetch_object($res_sort);
  248. $sortby=$rs->sortby;
  249. if(empty($sortby))
  250. {$sortby=1;}
  251. else{$sortby=$sortby+1;}
  252. for($i=0;$i<10;$i++)
  253. {
  254. $x.= "'".$answers[$i]."',";
  255. }
  256. for($j=0;$j<10;$j++)
  257. {
  258. if($j==9)
  259. {
  260. $y.= "'".$rating[$j]."'";
  261. }
  262. else
  263. {
  264. $y.= "'".$rating[$j]."',";
  265. }
  266. }
  267. /*if($qtype=='Multiple Choice (multiple answer)')
  268. {
  269. $anst = implode(", " ,$answerT);
  270. $ansd = implode(", " ,$answerD);
  271. }
  272. else
  273. {*/
  274. $anst = $answerT;
  275. $ansd = $answerD;
  276. //}
  277. $sql = "INSERT INTO $curr_dbname.questions (gid,survey_id,qtype,caption,alignment,sortby,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) values('$gid','$surveyid','$qtype','$caption','$alignment','$sortby',$x'$anst','$ansd',$y)";
  278. $result = api_sql_query($sql);
  279. return mysql_insert_id();
  280. }
  281. function update_question($qid,$qtype,$caption,$alignment,$answers,$open_ans,$curr_dbname)
  282. {
  283. for($i=0;$i<10;$i++)
  284. {
  285. $k=$i+1;
  286. $a.$k= $answers[$i];
  287. }
  288. $anst = $answerT;
  289. $ansd = $answerD;
  290. $sql = "UPDATE $curr_dbname.questions SET qtype='$qtype',caption='$caption',alignment='$alignment',a1='$answers[0]',a2='$answers[1]',a3='$answers[2]',a4='$answers[3]',a5='$answers[4]',a6='$answers[5]',a7='$answers[6]',a8='$answers[7]',a9='$answers[8]',a10='$answers[9]' WHERE qid='$qid'";
  291. $result = api_sql_query($sql);
  292. return mysql_insert_id();
  293. }
  294. function get_question_type($questionid)
  295. {
  296. $table_question = Database :: get_course_table('questions');
  297. $sql = "SELECT * FROM $table_question where qid='$questionid'";
  298. $res=api_sql_query($sql);
  299. $code=@mysql_result($res,0,'type');
  300. return($code);
  301. }
  302. function no_of_question($db_name,$gid)
  303. {
  304. //$table_question = Database :: get_course_table('questions');
  305. $sql = "SELECT * FROM $db_name.questions where gid='$gid'";
  306. $res=api_sql_query($sql);
  307. $code=@mysql_num_rows($res);
  308. return($code);
  309. }
  310. function get_question_data($qid,$curr_dbname)
  311. {
  312. $sql = "SELECT * FROM $curr_dbname.questions where qid='$qid'";
  313. $res=api_sql_query($sql);
  314. $rs=mysql_fetch_object($res);
  315. $properties = get_object_vars($rs);
  316. foreach ($properties as $property=>$val){
  317. $val = stripslashes($val);
  318. $rs->$property = $val;
  319. }
  320. return $rs;
  321. }
  322. function get_data($id, $field) {
  323. global $_course;
  324. $sql='SELECT '.$field.' FROM '.$_course['dbName'].'.survey WHERE survey_id='.intval($id);
  325. $res=api_sql_query($sql);
  326. $code=@mysql_result($res,0);
  327. return($code);
  328. }
  329. function get_all_datas($id) {
  330. global $_course;
  331. $sql='SELECT * FROM '.$_course['dbName'].'.survey WHERE survey_id='.intval($id);
  332. $res=api_sql_query($sql);
  333. return mysql_fetch_object($res);
  334. }
  335. function get_surveyname($db_name,$sid)
  336. {
  337. //$surveytable=Database:: get_course_table('survey');
  338. $sql="SELECT * FROM $db_name.survey WHERE survey_id=$sid";
  339. $res=api_sql_query($sql);
  340. $code=@mysql_result($res,0,'title');
  341. return($code);
  342. }
  343. function get_surveyname_display($sid)
  344. {
  345. $surveytable=Database:: get_course_table('survey');
  346. $sql="SELECT * FROM $surveytable WHERE survey_id=$sid";
  347. $res=api_sql_query($sql);
  348. $code=@mysql_result($res,0,'title');
  349. return($code);
  350. }
  351. /*
  352. function join_survey($question_type)
  353. {
  354. $table_survey = Database :: get_course_table(TABLE_MAIN_SURVEY);
  355. $table_group = Database :: get_course_table(TABLE_MAIN_GROUP);
  356. $table_question = Database :: get_course_table(TABLE_MAIN_SURVEYQUESTION);
  357. echo $sql="select t1.title as stitle, t3.type as type, t3.caption as caption, t2.groupname as groupname from $table_survey t1, $table_group t2, $table_question t3 where t1.survey_id=t2.survey_id and t3.gid=t2.group_id and t3.type='$question_type'";
  358. $sql_result = api_sql_query($sql,__FILE__,__LINE__);
  359. $result = mysql_fetch_object($sql_result);
  360. return ($result);
  361. }
  362. */
  363. function import_questions($import_type, $ids)
  364. {
  365. //$groupname=surveymanager::get_groupname($gid_arr[$index]);
  366. switch ($import_type){
  367. case "survey":
  368. {
  369. }
  370. case "groups":
  371. {
  372. foreach ($ids as $gid){
  373. $sql="insert into $table_question SELECT ('',gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) FROM $table_question where gid=$gid";
  374. }
  375. }
  376. case "questions":
  377. {
  378. }
  379. }
  380. $table_question = Database :: get_course_table('questions');
  381. if(isset($selected_group)){
  382. if($selected_group!=''){
  383. $sql = "SELECT $table_group('survey_id', 'groupname') values('$sid', '$groupname')";
  384. $res = api_sql_query($sql);
  385. $sql = "INSERT INTO $table_group('survey_id', 'groupname') values('$sid', '$groupname')";
  386. $res = api_sql_query($sql);
  387. $gid_arr[$index]+= mysql_insert_id();
  388. $groupids=implode(",",$gid_arr);
  389. }
  390. }
  391. echo $groupids;
  392. }
  393. function delete_survey($survey_id,$table_survey,$table_group,$table_question)
  394. {
  395. $sql = "DELETE FROM $table_survey WHERE survey_id='".$survey_id."'";
  396. api_sql_query($sql,__FILE__,__LINE__);
  397. $sql = "select * FROM $table_group WHERE survey_id='".$survey_id."'";
  398. $res = api_sql_query($sql,__FILE__,__LINE__);
  399. while($obj = mysql_fetch_object($res))
  400. {
  401. $sql = "DELETE FROM $table_question WHERE gid='".$obj->group_id."'";
  402. api_sql_query($sql,__FILE__,__LINE__);
  403. }
  404. $sql = "DELETE FROM $table_group WHERE survey_id='".$survey_id."'";
  405. api_sql_query($sql,__FILE__,__LINE__);
  406. }
  407. function delete_group($group_id,$curr_dbname)
  408. {
  409. $sql = "DELETE FROM $curr_dbname.questions WHERE gid='".$group_id."'";
  410. api_sql_query($sql,__FILE__,__LINE__);
  411. $sql = "DELETE FROM $curr_dbname.survey_group WHERE group_id='".$group_id."'";
  412. api_sql_query($sql,__FILE__,__LINE__);
  413. }
  414. function ques_id_group_name($qid)
  415. {
  416. $ques_table=Database::get_course_table('questions');
  417. $sql="SELECT gid FROM $ques_table where qid=$qid";
  418. $res=api_sql_query($sql);
  419. $id=@mysql_result($res,0,'gid');
  420. $gname=surveymanager::get_groupname($id);
  421. return($gname);
  422. }
  423. function insert_questions($sid,$newgid,$gid,$table_group)
  424. {
  425. $sql_select = "SELECT * FROM $table_group WHERE group_id IN (".$gid.")";
  426. $res = api_sql_query($sql_select);
  427. $num = mysql_num_rows($res);
  428. $i=0;
  429. while($i<$num)
  430. {
  431. $sql_insert = "INSERT INTO $table_group(group_id, survey_id, groupname) values('', '$sid', 'Imported Group')";
  432. $result = api_sql_query($sql_insert);
  433. $i++;
  434. }
  435. }
  436. function select_group_list($survey_id, $seleced_groupid='', $extra_script='')
  437. {
  438. $group_table = Database :: get_course_table('survey_group');
  439. $sql = "SELECT * FROM $group_table WHERE survey_id='$survey_id'";
  440. $sql_result = api_sql_query($sql,__FILE__,__LINE__);
  441. if(mysql_num_rows($sql_result)>0)
  442. {
  443. $str_group_list = "";
  444. $str_group_list .= "<select name=\"exiztinggroup\" $extra_script>\n";
  445. while($result=mysql_fetch_array($sql_result))
  446. {
  447. $selected = ($seleced_groupid==$result[group_id])?"selected":"";
  448. $str_group_list .= "\n<option value=\"".$result[group_id]."\" ".$selected.">".$result[groupname]."</option>\n";
  449. }
  450. $str_group_list .= "</select>";
  451. return $str_group_list;
  452. }
  453. else
  454. {
  455. return false;
  456. }
  457. }
  458. //For importing the groups to new survey
  459. function insert_groups($sid,$newgid,$gids,$table_group,$table_question)
  460. {
  461. $gid_arr = explode(",",$gids);
  462. $num = count($gid_arr);
  463. $queryone = "SELECT * FROM $table_question WHERE gid = '$newgid'";
  464. $rs = api_sql_query($queryone);
  465. $numrs=mysql_num_rows($rs);
  466. for($k=0;$k<$numrs;$k++)
  467. {
  468. $imp[]=mysql_result($rs,$k,"imported_group");
  469. }
  470. $imp=@array_unique($imp);
  471. for($n=0;$n<count($gid_arr);$n++)
  472. {
  473. if(@in_array($gid_arr[$n],$imp))
  474. {
  475. $gname=surveymanager::get_groupname($gid_arr[$n]);
  476. $alr[]=$gname;
  477. //$alr[]=$gid_arr[$n];
  478. //$unique_arr = @array_unique($alr);
  479. // print_r($unique_arr);
  480. }
  481. }
  482. //$unique_arr = @array_unique($alr);
  483. //print_r($unique_arr);
  484. /*if($msg)
  485. {
  486. echo "You have already imported the following group(s)";
  487. echo "<br>".$msg;
  488. }*/
  489. for($index=0;$index<$num;$index++)
  490. {
  491. if(@!in_array($gid_arr[$index],$imp))
  492. {
  493. $temp_gid = $gid_arr[$index];
  494. $sql = "SELECT * FROM $table_question WHERE gid = '$temp_gid'";
  495. $res = api_sql_query($sql);
  496. $num_rows = mysql_num_rows($res);
  497. while($obj = mysql_fetch_object($res))
  498. {
  499. $temp_qtype = $obj->qtype;
  500. $temp_caption = $obj->caption;
  501. $y="";
  502. $x="";
  503. for($i=1;$i<=10;$i++)
  504. {
  505. $temp = "a".$i;
  506. $x.= "'".$obj->$temp."',"; /*this variable contains concatenated values and need to be refreshed each time before the loop starts!*/
  507. }
  508. for($j=1;$j<=10;$j++)
  509. {
  510. if($j==10)
  511. {
  512. $temps = "r".$j;
  513. $y.= "'".$obj->$temps."'";
  514. }
  515. else
  516. {
  517. $temps = "r".$j;
  518. $y.= "'".$obj->$temps."',";
  519. }
  520. }
  521. $sql_insert = "INSERT INTO $table_question (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_group) values('','$newgid','$temp_qtype','$temp_caption',$x'$anst','$ansd',$y,'$temp_gid')";
  522. $res2 = api_sql_query($sql_insert);
  523. }
  524. }
  525. }
  526. }
  527. function display_imported_group($sid,$table_group,$table_question)
  528. {
  529. $sql = "SELECT group_id FROM $table_group WHERE survey_id='$sid'";
  530. $res = api_sql_query($sql);
  531. $num = @mysql_num_rows($res);
  532. //echo "ths is num".$num;
  533. $parameters = array();
  534. $displays = array();
  535. while($obj = @mysql_fetch_object($res))
  536. {
  537. $groupid = $obj->group_id;
  538. $query = "SELECT * FROM $table_question WHERE gid = '$groupid'";
  539. $result = api_sql_query($query);
  540. while($object = @mysql_fetch_object($result))
  541. {
  542. $display = array();
  543. $display[] = '<input type="checkbox" name="course[]" value="'.$object->qid.'"/>';
  544. $display[] = $object->caption;
  545. $display[] = $object->qtype;
  546. $id = $object->gid;
  547. //echo "THIS IS GROUP NAME ID".$id;
  548. $gname = surveymanager::get_groupname($id);
  549. $display[] = $gname;
  550. $displays[] = $display;
  551. }
  552. }
  553. $table_header[] = array('', false);
  554. $table_header[] = array(get_lang('Question'), true);
  555. $table_header[] = array(get_lang('QuestionType'), true);
  556. $table_header[] = array(get_lang('Group'), true);
  557. Display :: display_sortable_table($table_header, $displays, array (), array (), $parameters);
  558. }
  559. function attach_survey($surveyid,$newsurveyid,$db_name,$curr_dbname)
  560. //For attaching the whole survey with its groups and questions
  561. {
  562. $sql = "SELECT * FROM $db_name.survey_group WHERE survey_id = '$surveyid'";
  563. $res = api_sql_query($sql,__FILE__,__LINE__);
  564. while($obj=@mysql_fetch_object($res))
  565. {
  566. $groupname=addslashes($obj->groupname);
  567. $introduction=addslashes($obj->introduction);
  568. $sql_insert = "INSERT INTO $curr_dbname.survey_group(group_id,survey_id,groupname,introduction) values('','$newsurveyid','$groupname','$introduction')";
  569. $resnext = api_sql_query($sql_insert,__FILE__,__LINE__);
  570. $groupid = mysql_insert_id();
  571. $sql_q = "SELECT * FROM $db_name.questions WHERE gid = '$obj->group_id'";
  572. $res_q = api_sql_query($sql_q,__FILE__,__LINE__);
  573. while($obj_q = mysql_fetch_object($res_q))
  574. {
  575. $caption1=addslashes($obj_q->caption);
  576. $a1=addslashes($obj_q->a1);
  577. $a2=addslashes($obj_q->a2);
  578. $a3=addslashes($obj_q->a3);
  579. $a4=addslashes($obj_q->a4);
  580. $a5=addslashes($obj_q->a5);
  581. $a6=addslashes($obj_q->a6);
  582. $a7=addslashes($obj_q->a7);
  583. $a8=addslashes($obj_q->a8);
  584. $a9=addslashes($obj_q->a9);
  585. $a10=addslashes($obj_q->a10);
  586. $at=addslashes($obj_q->at);
  587. $ad=addslashes($obj_q->ad);
  588. $r1=addslashes($obj_q->r1);
  589. $r2=addslashes($obj_q->r2);
  590. $r3=addslashes($obj_q->r3);
  591. $r4=addslashes($obj_q->r4);
  592. $r5=addslashes($obj_q->r5);
  593. $r6=addslashes($obj_q->r6);
  594. $r7=addslashes($obj_q->r7);
  595. $r8=addslashes($obj_q->r8);
  596. $r9=addslashes($obj_q->r9);
  597. $r10=addslashes($obj_q->r10);
  598. $sql_sort = "SELECT max(sortby) AS sortby FROM $curr_dbname.questions ";
  599. $res_sort=api_sql_query($sql_sort);
  600. $rs=mysql_fetch_object($res_sort);
  601. $sortby=$rs->sortby;
  602. if(empty($sortby))
  603. {$sortby=1;}
  604. else{$sortby=$sortby+1;}
  605. $sql_q_insert = "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,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) values('','$groupid','$newsurveyid','$obj_q->qtype','$caption1','$obj_q->alignment','$sortby','$a1','$a2','$a3','$a4','$a5','$a6','$a7','$a8','$a9','$a10','$at','$ad','$r1','$r2','$r3','$r4','$r5','$r6','$r7','$r8','$r9','$r10')";
  606. api_sql_query($sql_q_insert,__FILE__,__LINE__);
  607. }
  608. }
  609. }
  610. function update_group($groupid,$surveyid,$groupnamme,$introduction,$curr_dbname)
  611. {
  612. $sql = "UPDATE $curr_dbname.survey_group SET group_id='$groupid', survey_id='$surveyid', groupname='$groupnamme', introduction='$introduction' WHERE group_id='$groupid'";
  613. api_sql_query($sql, __FILE__, __LINE__);
  614. }
  615. /*
  616. function insert_old_groups($sid,$gids,$table_group,$table_question)
  617. {
  618. $gid_arr = explode(",",$gids);
  619. $index = count($gid_arr);
  620. ($gid_arr);
  621. for($p=0;$p<$index;$p++)
  622. {
  623. $sql = "SELECT * FROM $table_group WHERE group_id = '$gid_arr[$p]'";
  624. $res = api_sql_query($sql);
  625. $obj = mysql_fetch_object($res);
  626. $gname = $obj->groupname;
  627. if($gname=='Default')
  628. {
  629. $query = "SELECT * FROM $table_group WHERE survey_id = '$sid' AND groupname = 'Default'";
  630. $result = api_sql_query($query);
  631. $object = mysql_fetch_object($result);
  632. $gid = $object->group_id;
  633. $sql_def_check = "SELECT * FROM $table_question WHERE gid = '$gid'";
  634. $res_def_check = api_sql_query($sql_def_check);
  635. $count_def_check = mysql_num_rows($res_def_check);
  636. for($ctr=0;$ctr<$count_def_check;$ctr++)
  637. {
  638. $imp[]=mysql_result($res_def_check,$ctr,"imported_group");
  639. }
  640. $imp = @array_unique($imp);
  641. if(!@in_array($gid_arr[$p],$imp))
  642. {
  643. $sql_ques = "SELECT * FROM $table_question WHERE gid= '$gid_arr[$p]'";
  644. $res_ques = api_sql_query($sql_ques);
  645. $num = mysql_num_rows($res_ques);
  646. while($obj_ques = mysql_fetch_object($res_ques))
  647. {
  648. $temp_qtype = $obj_ques->qtype;
  649. $temp_caption = $obj_ques->caption;
  650. $anst = $obj_ques->at;
  651. $ansd = $obj_ques->ad;
  652. $y="";
  653. $x="";
  654. for($i=1;$i<=10;$i++)
  655. {
  656. $temp = "a".$i;
  657. $x.= "'".$obj_ques->$temp."',";
  658. }
  659. for($j=1;$j<=10;$j++)
  660. {
  661. if($j==10)
  662. {
  663. $temps = "r".$j;
  664. $y.= "'".$obj_ques->$temps."'";
  665. }
  666. else
  667. {
  668. $temps = "r".$j;
  669. $y.= "'".$obj_ques->$temps."',";
  670. }
  671. }
  672. $sql_ques_insert = "INSERT INTO $table_question (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_group) values('','$gid','$temp_qtype','$temp_caption',$x'$anst','$ansd',$y,'$gid_arr[$p]')";
  673. $res_ques_insert = api_sql_query($sql_ques_insert);
  674. }
  675. }
  676. else
  677. {
  678. $flag = 1;
  679. }
  680. }
  681. else
  682. {
  683. $intro = $obj->introduction;
  684. $sql_check = "SELECT * FROM $table_group WHERE survey_id = '$sid'";
  685. $res_check = api_sql_query($sql_check);
  686. $num_check = mysql_num_rows($res_check);
  687. for($k=0;$k<$num_check;$k++)
  688. {
  689. $imp[]=mysql_result($res_check,$k,"imported_group");
  690. }
  691. $imp = @array_unique($imp);
  692. if(!@in_array($gid_arr[$p],$imp))
  693. {
  694. $sql_insert = "INSERT INTO $table_group(group_id,survey_id,groupname,introduction,imported_group) values('','$sid','$gname','$intro','$gid_arr[$p]')";
  695. $res_insert = api_sql_query($sql_insert);
  696. $new_gid = mysql_insert_id();
  697. $sql_ques = "SELECT * FROM $table_question WHERE gid= '$gid_arr[$p]'";
  698. $res_ques = api_sql_query($sql_ques);
  699. $num = mysql_num_rows($res_ques);
  700. while($obj_ques = mysql_fetch_object($res_ques))
  701. {
  702. $temp_qtype = $obj_ques->qtype;
  703. $temp_caption = $obj_ques->caption;
  704. $anst = $obj_ques->at;
  705. $ansd = $obj_ques->ad;
  706. $y="";
  707. $x="";
  708. for($i=1;$i<=10;$i++)
  709. {
  710. $temp = "a".$i;
  711. $x.= "'".$obj_ques->$temp."',";
  712. }
  713. for($j=1;$j<=10;$j++)
  714. {
  715. if($j==10)
  716. {
  717. $temps = "r".$j;
  718. $y.= "'".$obj_ques->$temps."'";
  719. }
  720. else
  721. {
  722. $temps = "r".$j;
  723. $y.= "'".$obj_ques->$temps."',";
  724. }
  725. }
  726. $sql_ques_insert = "INSERT INTO $table_question (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_group) values('','$new_gid','$temp_qtype','$temp_caption',$x'$anst','$ansd',$y,'$gid_arr[$p]')";
  727. $res_ques_insert = api_sql_query($sql_ques_insert);
  728. }
  729. }
  730. else
  731. {
  732. $flag = 1;
  733. }
  734. }
  735. }
  736. return ($flag);
  737. }
  738. */
  739. function insert_old_groups($sid,$gids,$table_group,$table_question,$db_name,$cidReq)
  740. {
  741. $table_course = Database :: get_main_table(TABLE_MAIN_COURSE);
  742. $sql = "SELECT * FROM $table_course WHERE code = '$cidReq'";
  743. $res = api_sql_query($sql,__FILE__,__LINE__);
  744. $obj_name=@mysql_fetch_object($res);
  745. $current_db_name = $obj_name->db_name ;
  746. $gid_arr = explode(",",$gids);
  747. $index = count($gid_arr);
  748. ($gid_arr);
  749. for($p=0;$p<$index;$p++)
  750. {
  751. $sql = "SELECT * FROM $db_name.survey_group WHERE group_id = '$gid_arr[$p]'";
  752. $res = api_sql_query($sql);
  753. $obj = mysql_fetch_object($res);
  754. $gname = $obj->groupname;
  755. if($gname=='No Group')
  756. {
  757. $query = "SELECT * FROM $db_name.survey_group WHERE survey_id = '$sid' AND groupname = 'No Group'";
  758. $result = api_sql_query($query);
  759. $object = mysql_fetch_object($result);
  760. $gid = $object->group_id;
  761. $sql_def_check = "SELECT * FROM $db_name.questions WHERE gid = '$gid'";
  762. $res_def_check = api_sql_query($sql_def_check);
  763. $count_def_check = mysql_num_rows($res_def_check);
  764. for($ctr=0;$ctr<$count_def_check;$ctr++)
  765. {
  766. $imp[]=mysql_result($res_def_check,$ctr,"imported_group");
  767. }
  768. $imp = @array_unique($imp);
  769. $gid_arr[$p];
  770. if(!@in_array($gid_arr[$p],$imp))
  771. {
  772. $sql_ques = "SELECT * FROM $db_name.questions WHERE gid= '$gid_arr[$p]'";
  773. $res_ques = api_sql_query($sql_ques);
  774. $num = mysql_num_rows($res_ques);
  775. while($obj_ques = mysql_fetch_object($res_ques))
  776. {
  777. $temp_qtype = $obj_ques->qtype;
  778. $temp_caption = $obj_ques->caption;
  779. $anst = $obj_ques->at;
  780. $ansd = $obj_ques->ad;
  781. $y="";
  782. $x="";
  783. for($i=1;$i<=10;$i++)
  784. {
  785. $temp = "a".$i;
  786. $x.= "'".$obj_ques->$temp."',"; /*this variable contains concatenated values and need to be refreshed each time before the loop starts!*/
  787. }
  788. for($j=1;$j<=10;$j++)
  789. {
  790. if($j==10)
  791. {
  792. $temps = "r".$j;
  793. $y.= "'".$obj_ques->$temps."'";
  794. }
  795. else
  796. {
  797. $temps = "r".$j;
  798. $y.= "'".$obj_ques->$temps."',";
  799. }
  800. }
  801. $sql_ques_insert = "INSERT INTO $current_db_name.questions (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_group) values('','$gid','$temp_qtype','$temp_caption',$x'$anst','$ansd',$y,'$gid_arr[$p]')";
  802. $res_ques_insert = api_sql_query($sql_ques_insert);
  803. }
  804. }
  805. else
  806. {
  807. $flag = 1;
  808. }
  809. }
  810. else
  811. {
  812. $intro = $obj->introduction;
  813. $sql_check = "SELECT * FROM $db_name.survey_group WHERE survey_id = '$sid'";
  814. $res_check = api_sql_query($sql_check);
  815. $num_check = mysql_num_rows($res_check);
  816. for($k=0;$k<$num_check;$k++)
  817. {
  818. $imp[]=mysql_result($res_check,$k,"imported_group");
  819. }
  820. $imp = @array_unique($imp);
  821. if(!@in_array($gid_arr[$p],$imp))
  822. {
  823. $sql_insert = "INSERT INTO $current_db_name.survey_group(group_id,survey_id,groupname,introduction,imported_group) values('','$sid','$gname','$intro','$gid_arr[$p]')";
  824. $res_insert = api_sql_query($sql_insert);
  825. $new_gid = mysql_insert_id();
  826. $sql_ques = "SELECT * FROM $db_name.questions WHERE gid= '$gid_arr[$p]'";
  827. $res_ques = api_sql_query($sql_ques);
  828. $num = mysql_num_rows($res_ques);
  829. while($obj_ques = mysql_fetch_object($res_ques))
  830. {
  831. $temp_qtype = $obj_ques->qtype;
  832. $temp_caption = $obj_ques->caption;
  833. $anst = $obj_ques->at;
  834. $ansd = $obj_ques->ad;
  835. $y="";
  836. $x="";
  837. for($i=1;$i<=10;$i++)
  838. {
  839. $temp = "a".$i;
  840. $x.= "'".$obj_ques->$temp."',"; /*this variable contains concatenated values and need to be refreshed each time before the loop starts!*/
  841. }
  842. for($j=1;$j<=10;$j++)
  843. {
  844. if($j==10)
  845. {
  846. $temps = "r".$j;
  847. $y.= "'".$obj_ques->$temps."'";
  848. }
  849. else
  850. {
  851. $temps = "r".$j;
  852. $y.= "'".$obj_ques->$temps."',";
  853. }
  854. }
  855. $sql_ques_insert = "INSERT INTO $current_db_name.questions (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_group) values('','$new_gid','$temp_qtype','$temp_caption',$x'$anst','$ansd',$y,'$gid_arr[$p]')";
  856. $res_ques_insert = api_sql_query($sql_ques_insert);
  857. }
  858. }
  859. else
  860. {
  861. $flag = 1;
  862. }
  863. }
  864. }
  865. return ($flag);
  866. }
  867. function import_question($surveyid,$qids,$table_group,$table_question,$db_name,$cidReq,$yes)
  868. {
  869. $table_course = Database :: get_main_table(TABLE_MAIN_COURSE);
  870. $sql_course = "SELECT * FROM $table_course WHERE code = '$cidReq'";
  871. $res_course = api_sql_query($sql_course,__FILE__,__LINE__);
  872. $obj_name=@mysql_fetch_object($res_course);
  873. $current_db_name = $obj_name->db_name ;
  874. $qid=explode(",",$qids);
  875. $count = count($qid);
  876. for($i=0; $i<$count; $i++)
  877. {
  878. $sql_q = "SELECT * FROM $table_question WHERE qid = '$qid[$i]'";
  879. $res_q = api_sql_query($sql_q,__FILE__,__LINE__);
  880. $obj=@mysql_fetch_object($res_q);
  881. $oldgid=$obj->gid;
  882. $sql = "SELECT * FROM $table_group WHERE group_id = '$oldgid'";
  883. $res = api_sql_query($sql,__FILE__,__LINE__);
  884. $obj_gr = @mysql_fetch_object($res);
  885. $gname = $obj_gr->groupname;
  886. $gintro = $obj_gr->introduction;
  887. $sql_gid = "SELECT * FROM $table_group WHERE survey_id = '$surveyid' AND groupname = '$gname'";
  888. $res_gid = api_sql_query($sql_gid,__FILE__,__LINE__);
  889. $num=mysql_num_rows($res_gid);
  890. $obj_gid=@mysql_fetch_object($res_gid);
  891. $sql_quesid = "SELECT * FROM $table_question WHERE gid = '$obj_gid->group_id' AND caption = '$obj->caption'";
  892. $res_quesid = api_sql_query($sql_quesid,__FILE__,__LINE__);
  893. $num_ques=mysql_num_rows($res_quesid);
  894. if($num_ques>0)
  895. {
  896. $message=1;
  897. //echo "<div align=\"center\"><strong><font color=\"#FF0000\">Already Imported !</font></strong></div>" ;
  898. }
  899. else
  900. {
  901. if($num>0 && $yes=="yes")
  902. {
  903. $sql_q_insert = "INSERT INTO $current_db_name.questions (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) values('','$obj_gid->group_id','$obj->qtype','$obj->caption','$obj->a1','$obj->a2','$obj->a3','$obj->a4','$obj->a5','$obj->a6','$obj->a7','$obj->a8','$obj->a9','$obj->a10','$obj->at','$obj->ad','$obj->r1','$obj->r2','$obj->r3','$obj->r4','$obj->r5','$obj->r6','$obj->r7','$obj->r8','$obj->r9','$obj->r10')";
  904. api_sql_query($sql_q_insert,__FILE__,__LINE__);
  905. }
  906. else
  907. {
  908. $sql_ginsert="INSERT INTO $current_db_name.survey_group(group_id,survey_id,groupname,introduction) values('','$surveyid','$gname','$gintro')";
  909. api_sql_query($sql_ginsert,__FILE__,__LINE__);
  910. $new_gid = mysql_insert_id();
  911. $sql_q_insert = "INSERT INTO $current_db_name.questions (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) values('','$new_gid','$obj->qtype','$obj->caption','$obj->a1','$obj->a2','$obj->a3','$obj->a4','$obj->a5','$obj->a6','$obj->a7','$obj->a8','$obj->a9','$obj->a10','$obj->at','$obj->ad','$obj->r1','$obj->r2','$obj->r3','$obj->r4','$obj->r5','$obj->r6','$obj->r7','$obj->r8','$obj->r9','$obj->r10')";
  912. api_sql_query($sql_q_insert,__FILE__,__LINE__);
  913. }
  914. }
  915. }
  916. return $message;
  917. }
  918. function create_course_survey_rel($cidReq,$survey_id,$table_course,$table_course_survey_rel)
  919. {
  920. $sql = "SELECT * FROM $table_course WHERE code = '$cidReq'";
  921. $res = api_sql_query($sql,__FILE__,__LINE__);
  922. $obj=@mysql_fetch_object($res);
  923. $db_name = $obj->db_name ;
  924. $sql="INSERT INTO $table_course_survey_rel(id,course_code,db_name,survey_id) values('','$cidReq','$db_name','$survey_id')";
  925. api_sql_query($sql,__FILE__,__LINE__);
  926. return $db_name;
  927. }
  928. function import_existing_question($surveyid,$qids,$table_group,$table_question,$yes)
  929. {
  930. $qid=explode(",",$qids);
  931. $count = count($qid);
  932. for($i=0; $i<$count; $i++)
  933. {
  934. $sql_q = "SELECT * FROM $table_question WHERE qid = '$qid[$i]'";
  935. $res_q = api_sql_query($sql_q,__FILE__,__LINE__);
  936. $obj=@mysql_fetch_object($res_q);
  937. $oldgid=$obj->gid;
  938. $sql = "SELECT * FROM $table_group WHERE group_id = '$oldgid'";
  939. $res = api_sql_query($sql,__FILE__,__LINE__);
  940. $obj_gr = @mysql_fetch_object($res);
  941. $gname = $obj_gr->groupname;
  942. $gintro = $obj_gr->introduction;
  943. $sql_gid = "SELECT * FROM $table_group WHERE survey_id = '$surveyid' AND groupname = '$gname'";
  944. $res_gid = api_sql_query($sql_gid,__FILE__,__LINE__);
  945. $num=mysql_num_rows($res_gid);
  946. $obj_gid=@mysql_fetch_object($res_gid);
  947. $sql_quesid = "SELECT * FROM $table_question WHERE gid = '$obj_gid->group_id' AND caption = '$obj->caption'";
  948. $res_quesid = api_sql_query($sql_quesid,__FILE__,__LINE__);
  949. $num_ques=mysql_num_rows($res_quesid);
  950. if($num_ques>0)
  951. {
  952. $message=1;
  953. //echo "<div align=\"center\"><strong><font color=\"#FF0000\">Already Imported !</font></strong></div>" ;
  954. }
  955. else
  956. {
  957. if($num>0 && $yes=="yes")
  958. {
  959. $sql_q_insert = "INSERT INTO $table_question (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) values('','$obj_gid->group_id','$obj->qtype','$obj->caption','$obj->a1','$obj->a2','$obj->a3','$obj->a4','$obj->a5','$obj->a6','$obj->a7','$obj->a8','$obj->a9','$obj->a10','$obj->at','$obj->ad','$obj->r1','$obj->r2','$obj->r3','$obj->r4','$obj->r5','$obj->r6','$obj->r7','$obj->r8','$obj->r9','$obj->r10')";
  960. api_sql_query($sql_q_insert,__FILE__,__LINE__);
  961. }
  962. else
  963. {
  964. $sql_ginsert="INSERT INTO $table_group(group_id,survey_id,groupname,introduction) values('','$surveyid','$gname','$gintro')";
  965. api_sql_query($sql_ginsert,__FILE__,__LINE__);
  966. $new_gid = mysql_insert_id();
  967. $sql_q_insert = "INSERT INTO $table_question (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) values('','$new_gid','$obj->qtype','$obj->caption','$obj->a1','$obj->a2','$obj->a3','$obj->a4','$obj->a5','$obj->a6','$obj->a7','$obj->a8','$obj->a9','$obj->a10','$obj->at','$obj->ad','$obj->r1','$obj->r2','$obj->r3','$obj->r4','$obj->r5','$obj->r6','$obj->r7','$obj->r8','$obj->r9','$obj->r10')";
  968. api_sql_query($sql_q_insert,__FILE__,__LINE__);
  969. }
  970. }
  971. }
  972. return $message;
  973. }
  974. function insert_existing_groups($sid,$gids,$table_group,$table_question)
  975. {
  976. $gid_arr = explode(",",$gids);
  977. $index = count($gid_arr);
  978. ($gid_arr);
  979. for($p=0;$p<$index;$p++)
  980. {
  981. $sql = "SELECT * FROM $table_group WHERE group_id = '$gid_arr[$p]'";
  982. $res = api_sql_query($sql);
  983. $obj = mysql_fetch_object($res);
  984. $gname = $obj->groupname;
  985. if($gname=='No Group')
  986. {
  987. $query = "SELECT * FROM $table_group WHERE survey_id = '$sid' AND groupname = 'No Group'";
  988. $result = api_sql_query($query);
  989. $object = mysql_fetch_object($result);
  990. $gid = $object->group_id;
  991. $sql_def_check = "SELECT * FROM $table_question WHERE gid = '$gid'";
  992. $res_def_check = api_sql_query($sql_def_check);
  993. $count_def_check = mysql_num_rows($res_def_check);
  994. for($ctr=0;$ctr<$count_def_check;$ctr++)
  995. {
  996. $imp[]=mysql_result($res_def_check,$ctr,"imported_group");
  997. }
  998. $imp = @array_unique($imp);
  999. if(!@in_array($gid_arr[$p],$imp))
  1000. {
  1001. $sql_ques = "SELECT * FROM $table_question WHERE gid= '$gid_arr[$p]'";
  1002. $res_ques = api_sql_query($sql_ques);
  1003. $num = mysql_num_rows($res_ques);
  1004. while($obj_ques = mysql_fetch_object($res_ques))
  1005. {
  1006. $temp_qtype = $obj_ques->qtype;
  1007. $temp_caption = $obj_ques->caption;
  1008. $anst = $obj_ques->at;
  1009. $ansd = $obj_ques->ad;
  1010. $y="";
  1011. $x="";
  1012. for($i=1;$i<=10;$i++)
  1013. {
  1014. $temp = "a".$i;
  1015. $x.= "'".$obj_ques->$temp."',"; /*this variable contains concatenated values and need to be refreshed each time before the loop starts!*/
  1016. }
  1017. for($j=1;$j<=10;$j++)
  1018. {
  1019. if($j==10)
  1020. {
  1021. $temps = "r".$j;
  1022. $y.= "'".$obj_ques->$temps."'";
  1023. }
  1024. else
  1025. {
  1026. $temps = "r".$j;
  1027. $y.= "'".$obj_ques->$temps."',";
  1028. }
  1029. }
  1030. $sql_ques_insert = "INSERT INTO $table_question (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_group) values('','$gid','$temp_qtype','$temp_caption',$x'$anst','$ansd',$y,'$gid_arr[$p]')";
  1031. $res_ques_insert = api_sql_query($sql_ques_insert);
  1032. }
  1033. }
  1034. else
  1035. {
  1036. $flag = 1;
  1037. }
  1038. }
  1039. else
  1040. {
  1041. $intro = $obj->introduction;
  1042. $sql_check = "SELECT * FROM $table_group WHERE survey_id = '$sid'";
  1043. $res_check = api_sql_query($sql_check);
  1044. $num_check = mysql_num_rows($res_check);
  1045. for($k=0;$k<$num_check;$k++)
  1046. {
  1047. $imp[]=mysql_result($res_check,$k,"imported_group");
  1048. }
  1049. $imp = @array_unique($imp);
  1050. if(!@in_array($gid_arr[$p],$imp))
  1051. {
  1052. $sql_insert = "INSERT INTO $table_group(group_id,survey_id,groupname,introduction,imported_group) values('','$sid','$gname','$intro','$gid_arr[$p]')";
  1053. $res_insert = api_sql_query($sql_insert);
  1054. $new_gid = mysql_insert_id();
  1055. $sql_ques = "SELECT * FROM $table_question WHERE gid= '$gid_arr[$p]'";
  1056. $res_ques = api_sql_query($sql_ques);
  1057. $num = mysql_num_rows($res_ques);
  1058. while($obj_ques = mysql_fetch_object($res_ques))
  1059. {
  1060. $temp_qtype = $obj_ques->qtype;
  1061. $temp_caption = $obj_ques->caption;
  1062. $anst = $obj_ques->at;
  1063. $ansd = $obj_ques->ad;
  1064. $y="";
  1065. $x="";
  1066. for($i=1;$i<=10;$i++)
  1067. {
  1068. $temp = "a".$i;
  1069. $x.= "'".$obj_ques->$temp."',"; /*this variable contains concatenated values and need to be refreshed each time before the loop starts!*/
  1070. }
  1071. for($j=1;$j<=10;$j++)
  1072. {
  1073. if($j==10)
  1074. {
  1075. $temps = "r".$j;
  1076. $y.= "'".$obj_ques->$temps."'";
  1077. }
  1078. else
  1079. {
  1080. $temps = "r".$j;
  1081. $y.= "'".$obj_ques->$temps."',";
  1082. }
  1083. }
  1084. $sql_ques_insert = "INSERT INTO $table_question (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_group) values('','$new_gid','$temp_qtype','$temp_caption',$x'$anst','$ansd',$y,'$gid_arr[$p]')";
  1085. $res_ques_insert = api_sql_query($sql_ques_insert);
  1086. }
  1087. }
  1088. else
  1089. {
  1090. $flag = 1;
  1091. }
  1092. }
  1093. }
  1094. return ($flag);
  1095. }
  1096. function pick_surveyname($sid)
  1097. {
  1098. $surveytable=Database:: get_course_table('survey');
  1099. $sql="SELECT * FROM $surveytable WHERE survey_id=$sid";
  1100. $res=api_sql_query($sql);
  1101. $code=@mysql_result($res,0,'title');
  1102. return($code);
  1103. }
  1104. function pick_author($survey_id)
  1105. {
  1106. $survey_table = Database :: get_course_table('survey');
  1107. $sql = "SELECT author FROM $survey_table WHERE survey_id='$survey_id'";
  1108. $res = api_sql_query($sql, __FILE__, __LINE__);
  1109. $author=@mysql_result($res,0,'author');
  1110. return $author;
  1111. }
  1112. function question_import($surveyid,$qids,$db_name,$curr_dbname)
  1113. {
  1114. $qid=explode(",",$qids);
  1115. $count = count($qid);
  1116. for($i=0; $i<$count; $i++)
  1117. {
  1118. $sql_sort = "SELECT max(sortby) AS sortby FROM $curr_dbname.questions ";
  1119. $res_sort=api_sql_query($sql_sort);
  1120. $rs=mysql_fetch_object($res_sort);
  1121. $sortby=$rs->sortby;
  1122. if(empty($sortby))
  1123. {$sortby=1;}
  1124. else{$sortby=$sortby+1;}
  1125. $sql_q = "SELECT * FROM $db_name.questions WHERE qid = '$qid[$i]'";
  1126. $res_q = api_sql_query($sql_q,__FILE__,__LINE__);
  1127. $obj=@mysql_fetch_object($res_q);
  1128. $oldgid=$obj->gid;
  1129. $caption1=addslashes($obj->caption);
  1130. $a1=addslashes($obj->a1);
  1131. $a2=addslashes($obj->a2);
  1132. $a3=addslashes($obj->a3);
  1133. $a4=addslashes($obj->a4);
  1134. $a5=addslashes($obj->a5);
  1135. $a6=addslashes($obj->a6);
  1136. $a7=addslashes($obj->a7);
  1137. $a8=addslashes($obj->a8);
  1138. $a9=addslashes($obj->a9);
  1139. $a10=addslashes($obj->a10);
  1140. $at=addslashes($obj->at);
  1141. $ad=addslashes($obj->ad);
  1142. $r1=addslashes($obj->r1);
  1143. $r2=addslashes($obj->r2);
  1144. $r3=addslashes($obj->r3);
  1145. $r4=addslashes($obj->r4);
  1146. $r5=addslashes($obj->r5);
  1147. $r6=addslashes($obj->r6);
  1148. $r7=addslashes($obj->r7);
  1149. $r8=addslashes($obj->r8);
  1150. $r9=addslashes($obj->r9);
  1151. $r10=addslashes($obj_q->r10);
  1152. //$sql_gr = "SELECT * FROM $db_name.survey_group WHERE group_id = '$oldgid'";
  1153. //$res_gr = api_sql_query($sql_gr,__FILE__,__LINE__);
  1154. // $obj_gr=@mysql_fetch_object($res_gr);
  1155. //$groupname = $obj_gr->groupname
  1156. $sql_quesid = "SELECT * FROM $curr_dbname.questions WHERE survey_id = '$surveyid' AND imported_question = '$qid[$i]' AND db_name = '$db_name'";
  1157. $res_quesid = api_sql_query($sql_quesid,__FILE__,__LINE__);
  1158. $num_ques=mysql_num_rows($res_quesid);
  1159. if($num_ques>0)
  1160. {
  1161. $message=1;
  1162. }
  1163. else
  1164. {
  1165. $sql_group = "SELECT * FROM $db_name.survey_group WHERE group_id = '$oldgid'";
  1166. $res_group = api_sql_query($sql_group,__FILE__,__LINE__);
  1167. $obj_group=@mysql_fetch_object($res_group);
  1168. $groupname = $obj_group->groupname;
  1169. $sql = "SELECT * FROM $curr_dbname.survey_group WHERE groupname = '$groupname' AND survey_id = '$surveyid'";
  1170. $res = api_sql_query($sql,__FILE__,__LINE__);
  1171. $obj_gro = mysql_fetch_object($res);
  1172. $num_group=mysql_num_rows($res);
  1173. if($num_group>0)
  1174. {
  1175. $sql_q_insert = "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,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_question,db_name) values('','$obj_gro->group_id','$surveyid','$obj->qtype','$caption1','$obj->alignment','$sortby','$a1','$a2','$a3','$a4','$a5','$a6','$a7','$a8','$a9','$a10','$at','$ad','$r1','$r2','$r3','$r4','$r5','$r6','$r7','$r8','$r9','$r10','$qid[$i]','$db_name')";
  1176. api_sql_query($sql_q_insert,__FILE__,__LINE__);
  1177. }
  1178. else
  1179. {
  1180. //$num_group;
  1181. $sql_ginsert="INSERT INTO $curr_dbname.survey_group(group_id,survey_id,groupname,introduction,imported_group, db_name) values('','$surveyid','$groupname','$obj_group->introduction','$oldgid','$db_name')";
  1182. api_sql_query($sql_ginsert,__FILE__,__LINE__);
  1183. $new_gid = mysql_insert_id();
  1184. $sql_q_insert = "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,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_question,db_name) values('','$new_gid','$surveyid','$obj->qtype','$caption1','$obj->alignment','$sortby','$a1','$a2','$a3','$a4','$a5','$a6','$a7','$a8','$a9','$a10','$at','$ad','$r1','$r2','$r3','$r4','$r5','$r6','$r7','$r8','$r9','$r10','$qid[$i]','$db_name')";
  1185. api_sql_query($sql_q_insert,__FILE__,__LINE__);
  1186. }
  1187. }
  1188. }
  1189. return $message;
  1190. }
  1191. /*
  1192. function import_group($surveyid,$gids,$db_name,$curr_dbname)
  1193. {
  1194. $gid_arr = explode(",",$gids);
  1195. $index = count($gid_arr);
  1196. for($i=0;$i<$index;$i++)
  1197. {
  1198. $sql = "SELECT * FROM $db_name.survey_group WHERE group_id = '$gid_arr[$i]'";
  1199. $res = api_sql_query($sql,__FILE__,__LINE__);
  1200. $obj = mysql_fetch_object($res);
  1201. $sql_ques = "SELECT * FROM $db_name.questions WHERE gid = '$gid_arr[$i]'";
  1202. $res_ques = api_sql_query($sql_ques,__FILE__,__LINE__);
  1203. $obj_ques = mysql_fetch_object($res_ques);
  1204. $sql_check = "SELECT * FROM $curr_dbname.survey_group WHERE survey_id = '$surveyid' AND imported_group = '$gid_arr[$i]' AND db_name = '$db_name'";
  1205. $res_check = api_sql_query($sql_check);
  1206. $obj_check = mysql_fetch_object($res_check);
  1207. $num = mysql_num_rows($res_check);
  1208. if($num>0)
  1209. {
  1210. $sql_question = "SELECT * FROM $curr_dbname.questions WHERE survey_id='$surveyid' AND imported_question = '$obj_ques->qid' AND db_name = '$db_name'";
  1211. $res_question = api_sql_query($sql_question,__FILE__,__LINE__);
  1212. $num_ques = mysql_num_rows($res_question);
  1213. if($num_ques>0)
  1214. {
  1215. $message=1;
  1216. }
  1217. else
  1218. {
  1219. $sql_insert_ques = "INSERT INTO $curr_dbname.questions (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_question,db_name) values('','$obj_check->group_id','$surveyid','$obj_ques->qtype','$obj_ques->caption','$obj_ques->a1','$obj_ques->a2','$obj_ques->a3','$obj_ques->a4','$obj_ques->a5','$obj_ques->a6','$obj_ques->a7','$obj_ques->a8','$obj_ques->a9','$obj_ques->a10','$obj_ques->at','$obj_ques->ad','$obj_ques->r1','$obj_ques->r2','$obj_ques->r3','$obj_ques->r4','$obj_ques->r5','$obj_ques->r6','$obj_ques->r7','$obj_ques->r8','$obj_ques->r9','$obj_ques->r10','$obj_ques->qid','$db_name')";
  1220. api_sql_query($sql_insert_ques);
  1221. }
  1222. }
  1223. else
  1224. {
  1225. $insert_group = "INSERT INTO $curr_dbname.survey_group (group_id,survey_id,groupname,introduction,imported_group,db_name) values('','$surveyid','$obj->groupname','$obj->introduction','$obj->group_id','$db_name')";
  1226. $res_insert_group=api_sql_query($insert_group);
  1227. $new_gid = mysql_insert_id();
  1228. $sql_insert_grp = "INSERT INTO $curr_dbname.questions (qid,gid,qtype,caption,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,at,ad,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,imported_question,db_name) values('','$new_gid','$surveyid','$obj_ques->qtype','$obj_ques->caption','$obj_ques->a1','$obj_ques->a2','$obj_ques->a3','$obj_ques->a4','$obj_ques->a5','$obj_ques->a6','$obj_ques->a7','$obj_ques->a8','$obj_ques->a9','$obj_ques->a10','$obj_ques->at','$obj_ques->ad','$obj_ques->r1','$obj_ques->r2','$obj_ques->r3','$obj_ques->r4','$obj_ques->r5','$obj_ques->r6','$obj_ques->r7','$obj_ques->r8','$obj_ques->r9','$obj_ques->r10','$obj_ques->qid','$db_name')";
  1229. api_sql_query($sql_insert_grp);
  1230. }
  1231. }
  1232. return $message;
  1233. }
  1234. */
  1235. function import_group($sid,$gids,$db_name,$curr_dbname)
  1236. {
  1237. $gid_arr = explode(",",$gids);
  1238. $index = count($gid_arr);
  1239. for($i=0;$i<$index;$i++)
  1240. {
  1241. $sql = "SELECT * FROM $db_name.survey_group WHERE group_id = '$gid_arr[$i]'";
  1242. $res = api_sql_query($sql);
  1243. $obj = mysql_fetch_object($res);
  1244. $groupname=addslashes($obj->groupname);
  1245. $introduction=addslashes($obj->introduction);
  1246. $g_sortby = intval($obj->sortby);
  1247. $sql_curr = "SELECT * FROM $curr_dbname.survey_group WHERE survey_id = '$sid' AND groupname = '$obj->groupname'";
  1248. $res_curr = api_sql_query($sql_curr);
  1249. $obj_curr = mysql_fetch_object($res_curr);
  1250. $gid = $obj_curr->group_id;
  1251. $num = mysql_num_rows($res_curr);
  1252. if($num>0) //the group name exists and the questions will be imported in this group.
  1253. {
  1254. $sql_ques = "SELECT * FROM $curr_dbname.questions WHERE gid = '$gid'";
  1255. $res_ques = api_sql_query($sql_ques);
  1256. $obj_ques = mysql_fetch_object($res_ques);
  1257. $count = mysql_num_rows($res_ques);
  1258. for($j=0;$j<$count;$j++)
  1259. {
  1260. $check_qid[] = mysql_result($res_ques,$j,"imported_question");
  1261. $check_db[] = mysql_result($res_ques,$j,"db_name");
  1262. }
  1263. $check_qid = @array_unique($check_qid);
  1264. $check_db = @array_unique($check_db);
  1265. $sql_old = "SELECT * FROM $db_name.questions WHERE gid = '$gid_arr[$i]'";
  1266. $res_old = api_sql_query($sql_old);
  1267. while($obj_old = mysql_fetch_object($res_old))
  1268. {
  1269. $caption1=addslashes($obj_old->caption);
  1270. $a1=addslashes($obj_old->a1);
  1271. $a2=addslashes($obj_old->a2);
  1272. $a3=addslashes($obj_old->a3);
  1273. $a4=addslashes($obj_old->a4);
  1274. $a5=addslashes($obj_old->a5);
  1275. $a6=addslashes($obj_old->a6);
  1276. $a7=addslashes($obj_old->a7);
  1277. $a8=addslashes($obj_old->a8);
  1278. $a9=addslashes($obj_old->a9);
  1279. $a10=addslashes($obj_old->a10);
  1280. $at=addslashes($obj_old->at);
  1281. $ad=addslashes($obj_old->ad);
  1282. $r1=addslashes($obj_old->r1);
  1283. $r2=addslashes($obj_old->r2);
  1284. $r3=addslashes($obj_old->r3);
  1285. $r4=addslashes($obj_old->r4);
  1286. $r5=addslashes($obj_old->r5);
  1287. $r6=addslashes($obj_old->r6);
  1288. $r7=addslashes($obj_old->r7);
  1289. $r8=addslashes($obj_old->r8);
  1290. $r9=addslashes($obj_old->r9);
  1291. $r10=addslashes($obj_old->r10);
  1292. $sql_sort = "SELECT max(sortby) AS sortby FROM $curr_dbname.questions ";
  1293. $res_sort=api_sql_query($sql_sort);
  1294. $rs=mysql_fetch_object($res_sort);
  1295. $sortby=$rs->sortby;
  1296. if(empty($sortby))
  1297. {$sortby=1;}
  1298. else{$sortby=$sortby+1;}
  1299. if(@in_array($obj_old->qid,$check_qid)&&@in_array($db_name,$check_db)) //the question has already been imported
  1300. {
  1301. $flag=1;
  1302. continue;
  1303. }
  1304. else
  1305. {
  1306. $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')";
  1307. api_sql_query($sql_insertq);
  1308. }
  1309. }
  1310. }
  1311. else //the groupname does not exist. Create group with this name and insert questions in this new group.
  1312. {
  1313. $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)";
  1314. api_sql_query($sql_insertg);
  1315. $group_id = mysql_insert_id();
  1316. $sql_old = "SELECT * FROM $db_name.questions WHERE gid = '$gid_arr[$i]'";
  1317. $res_old = api_sql_query($sql_old);
  1318. while($obj_old = mysql_fetch_object($res_old))
  1319. {
  1320. $caption1=addslashes($obj_old->caption);
  1321. $a1=addslashes($obj_old->a1);
  1322. $a2=addslashes($obj_old->a2);
  1323. $a3=addslashes($obj_old->a3);
  1324. $a4=addslashes($obj_old->a4);
  1325. $a5=addslashes($obj_old->a5);
  1326. $a6=addslashes($obj_old->a6);
  1327. $a7=addslashes($obj_old->a7);
  1328. $a8=addslashes($obj_old->a8);
  1329. $a9=addslashes($obj_old->a9);
  1330. $a10=addslashes($obj_old->a10);
  1331. $at=addslashes($obj_old->at);
  1332. $ad=addslashes($obj_old->ad);
  1333. $r1=addslashes($obj_old->r1);
  1334. $r2=addslashes($obj_old->r2);
  1335. $r3=addslashes($obj_old->r3);
  1336. $r4=addslashes($obj_old->r4);
  1337. $r5=addslashes($obj_old->r5);
  1338. $r6=addslashes($obj_old->r6);
  1339. $r7=addslashes($obj_old->r7);
  1340. $r8=addslashes($obj_old->r8);
  1341. $r9=addslashes($obj_old->r9);
  1342. $r10=addslashes($obj_old->r10);
  1343. $sql_sort = "SELECT max(sortby) AS sortby FROM $curr_dbname.questions ";
  1344. $res_sort=api_sql_query($sql_sort);
  1345. $rs=mysql_fetch_object($res_sort);
  1346. $sortby=$rs->sortby;
  1347. if(empty($sortby))
  1348. {$sortby=1;}
  1349. else{$sortby=$sortby+1;}
  1350. $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')";
  1351. api_sql_query($sql_insertq);
  1352. }
  1353. }
  1354. }
  1355. return ($flag);
  1356. }
  1357. /**
  1358. * Enter description here...
  1359. *
  1360. * @return unknown
  1361. * @todo remove this function because this is of no use and should not be used.
  1362. */
  1363. function get_status()
  1364. {
  1365. global $_user;
  1366. $table_user = Database::get_main_table(TABLE_MAIN_USER);
  1367. $sqlm = "SELECT status FROM $table_user WHERE user_id = '".mysql_real_escape_string($_user['user_id'])."'";
  1368. $resm = api_sql_query($sqlm,__FILE__,__LINE__);
  1369. $objm=@mysql_fetch_object($resm);
  1370. $ss = $objm->status ;
  1371. return $ss;
  1372. }
  1373. function move_question($direction,$qid,$sort,$curr_dbname)
  1374. {
  1375. $questions=SurveyManager::get_questions_move($curr_dbname);
  1376. foreach ($questions as $key=>$value)
  1377. {
  1378. if ($qid==$value['qid'])
  1379. {
  1380. $source_course=$value;
  1381. if ($direction=="up")
  1382. {
  1383. $target_course=$questions[$key-1];
  1384. }
  1385. else
  1386. {$target_course=$questions[$key+1];}
  1387. }
  1388. }
  1389. $sql_update1="UPDATE $curr_dbname.questions SET sortby='".$target_course['sortby']."' WHERE qid='".$source_course['qid']."'";
  1390. $sql_update2="UPDATE $curr_dbname.questions SET sortby='".$source_course['sortby']."' WHERE qid='".$target_course['qid']."'";
  1391. mysql_query($sql_update2);
  1392. mysql_query($sql_update1);
  1393. //return ;
  1394. }
  1395. function get_questions_move($curr_dbname)
  1396. {
  1397. $sql_select_questions="SELECT * from $curr_dbname.questions order by `sortby` asc";
  1398. $result=mysql_query($sql_select_questions);
  1399. while ($row=mysql_fetch_array($result))
  1400. {
  1401. // we only need the database name of the course
  1402. $question1[]=array("caption"=> $row['caption'], "qid" => $row['qid'],"sortby" => $row['sortby']);
  1403. }
  1404. return $question1;
  1405. }
  1406. function display_sortable_table($groupid,$surveyid,$curr_dbname,$header, $content, $sorting_options = array (), $paging_options = array (), $query_vars = null)
  1407. {
  1408. global $origin;
  1409. require_once ('tablesort.lib.php');
  1410. if (!isset ($paging_options['per_page_default']))
  1411. {
  1412. $paging_options['per_page_default'] = 10;
  1413. }
  1414. if (!isset ($paging_options['page_nr']))
  1415. {
  1416. $paging_options['page_nr'] = (isset ($_GET['page_nr']) ? $_GET['page_nr'] : 1);
  1417. }
  1418. if (!isset ($paging_options['per_page']))
  1419. {
  1420. $paging_options['per_page'] = (isset ($_GET['per_page']) ? $_GET['per_page'] : $paging_options['per_page_default']);
  1421. }
  1422. if (!isset ($sorting_options['column']))
  1423. {
  1424. $sorting_options['column'] = (isset ($_GET['column']) ? $_GET['column'] : 0);
  1425. }
  1426. if (!isset ($sorting_options['direction']))
  1427. {
  1428. $sorting_options['direction'] = (isset ($_GET['direction']) ? $_GET['direction'] : SORT_ASC);
  1429. }
  1430. // Build the query_string
  1431. if (is_array($query_vars))
  1432. {
  1433. foreach ($query_vars as $key => $value)
  1434. {
  1435. $query_string .= '&amp;'.urlencode($key).'='.urlencode($value);
  1436. }
  1437. }
  1438. $content = SurveyManager :: sort_table($content, $sorting_options['column'],'');
  1439. // Get data for selected page
  1440. $page_nav = '';
  1441. $page_content = array ();
  1442. $pages = array_chunk($content, intval($paging_options['per_page']));
  1443. if( $paging_options['page_nr'] > count($pages))
  1444. {
  1445. $paging_options['page_nr'] = count($pages);
  1446. }
  1447. $page_content = $pages[$paging_options['page_nr'] - 1];
  1448. // Build navigation bar
  1449. if (count($pages) > 1)
  1450. {
  1451. $page_nav = get_lang('Page').' : ';
  1452. if ($paging_options['page_nr'] > 1)
  1453. {
  1454. $page_nav .= '<a href="'.$_SERVER['PHP_SELF'].'?origin='.$origin.'&amp;column='.$sorting_options['column'].'&amp;direction='.$sorting_options['direction'].'&amp;page_nr='. ($paging_options['page_nr'] - 1).'&amp;per_page='.$paging_options['per_page'].''.$query_string.'">&laquo;</a> ';
  1455. }
  1456. for ($i = $paging_options['page_nr'] - 3; $i < $paging_options['page_nr']; $i ++)
  1457. {
  1458. if ($i > 0)
  1459. {
  1460. $page_nav .= '<a href="'.$_SERVER['PHP_SELF'].'?origin='.$origin.'&amp;column='.$sorting_options['column'].'&amp;direction='.$sorting_options['direction'].'&amp;page_nr='.$i.'&amp;per_page='.$paging_options['per_page'].''.$query_string.'">'.$i.'</a> ';
  1461. }
  1462. }
  1463. if ($i == $paging_options['page_nr'])
  1464. {
  1465. $page_nav .= '<b>'.$i.'</b> ';
  1466. }
  1467. for ($i = $paging_options['page_nr'] + 1; $i < $paging_options['page_nr'] + 4; $i ++)
  1468. {
  1469. if ($i <= count($pages))
  1470. {
  1471. $page_nav .= '<a href="'.$_SERVER['PHP_SELF'].'?origin='.$origin.'&amp;column='.$sorting_options['column'].'&amp;direction='.$sorting_options['direction'].'&amp;page_nr='.$i.'&amp;per_page='.$paging_options['per_page'].''.$query_string.'">'.$i.'</a> ';
  1472. }
  1473. }
  1474. if ($paging_options['page_nr'] < count($pages))
  1475. {
  1476. $page_nav .= '<a href="'.$_SERVER['PHP_SELF'].'?origin='.$origin.'&amp;column='.$sorting_options['column'].'&amp;direction='.$sorting_options['direction'].'&amp;page_nr='. ($paging_options['page_nr'] + 1).'&amp;per_page='.$paging_options['per_page'].''.$query_string.'">&raquo;</a> ';
  1477. }
  1478. }
  1479. $view_switch = '';
  1480. if (count($pages) == 1 && count($page_content) > $paging_options['per_page_default'])
  1481. {
  1482. $view_switch = ' <a href="'.$_SERVER['PHP_SELF'].'?origin='.$origin.'&amp;column='.$sorting_options['column'].'&amp;direction='.$sorting_options['direction'].'&amp;page_nr=1&amp;per_page='.$paging_options['per_page_default'].''.$query_string.'">'.get_lang('Show').' '.$paging_options['per_page_default'].'</a>';
  1483. }
  1484. elseif (count($pages) > 1)
  1485. {
  1486. $view_switch = ' <a href="'.$_SERVER['PHP_SELF'].'?origin='.$origin.'&amp;column='.$sorting_options['column'].'&amp;direction='.$sorting_options['direction'].'&amp;page_nr=1&amp;per_page='.count($content).''.$query_string.'">'.get_lang('ShowAll').'</a>';
  1487. }
  1488. $page_nav = '<table width="100%"><tr><td>'.$view_switch.'</td><td align="right">'.$page_nav.'</td></tr></table>';
  1489. // Determine new direction
  1490. $new_direction = ($sorting_options['direction'] == SORT_ASC ? SORT_DESC : SORT_ASC);
  1491. echo "\n";
  1492. echo $page_nav;
  1493. // Show the table
  1494. echo '<table class="data_table" width="100%">';
  1495. echo "\n";
  1496. echo '<tr>';
  1497. foreach ($header as $key => $value)
  1498. {
  1499. echo '<th '.$value[2].'>';
  1500. if ($value[1])
  1501. {
  1502. echo $value[0];
  1503. if ($sorting_options['column'] == $key)
  1504. {
  1505. echo $sorting_options['direction'] == SORT_ASC ? '&nbsp;&#8595; ' : '&nbsp;&#8593; ';
  1506. }
  1507. }
  1508. else
  1509. {
  1510. echo $value[0];
  1511. }
  1512. echo '</th>';
  1513. }
  1514. echo '</tr>';
  1515. echo "\n";
  1516. if( is_array($page_content))
  1517. {
  1518. $x=0;
  1519. $y=count($page_content);
  1520. $page_nr=$paging_options['page_nr'];
  1521. $per_page=$paging_options['per_page'];
  1522. $sql="SELECT * FROM $curr_dbname.questions WHERE survey_id = '$surveyid'";
  1523. $res1=api_sql_query($sql,__FILE__,__LINE__);
  1524. $num1=mysql_num_rows($res1);
  1525. $number_q=ceil($num1/10);
  1526. $sql_gr="SELECT * FROM $curr_dbname.questions WHERE gid='$groupid' AND survey_id = '$surveyid'";
  1527. $result_gr=api_sql_query($sql_gr,__FILE__,__LINE__);
  1528. $num_gr=mysql_num_rows($result_gr);
  1529. $questions=mysql_fetch_array($result_gr);
  1530. foreach ($page_content as $row => $data)
  1531. {
  1532. echo '<tr class="'. ($row % 2 == 0 ? 'row_even' : 'row_odd').'">';
  1533. foreach( $data as $column => $value)
  1534. {
  1535. echo '<td '.(isset($header[$column][3])? $header[$column][3] : '' ).'>';
  1536. if($x==0 && $page_nr==1)
  1537. {
  1538. echo str_replace('<img src="../img/up.gif" border="0" title="lang_move_up">',"",$value);
  1539. }
  1540. elseif(($page_nr==$number_q) && ($x==$y-1))
  1541. {
  1542. echo str_replace('<img src="../img/down.gif" border="0" title="lang_move_down">',"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",$value);
  1543. }
  1544. else{
  1545. echo $value;
  1546. }
  1547. echo '</td>';
  1548. }
  1549. echo '</tr>';
  1550. echo "\n";
  1551. $x++;
  1552. }
  1553. }
  1554. echo '</table>';
  1555. echo $page_nav;
  1556. }
  1557. function sort_table($data, $column = 0, $direction = SORT_ASC, $type = SORT_REGULAR)
  1558. {
  1559. switch ($type)
  1560. {
  1561. case SORT_REGULAR :
  1562. if (TableSort::is_image_column($data, $column))
  1563. {
  1564. return TableSort::sort_table($data, $column, $direction, SORT_IMAGE);
  1565. }
  1566. elseif (TableSort::is_date_column($data, $column))
  1567. {
  1568. return TableSort::sort_table($data, $column, $direction, SORT_DATE);
  1569. }
  1570. elseif (TableSort::is_numeric_column($data, $column))
  1571. {
  1572. return TableSort::sort_table($data, $column, $direction, SORT_NUMERIC);
  1573. }
  1574. return TableSort::sort_table($data, $column, $direction, SORT_STRING);
  1575. break;
  1576. case SORT_NUMERIC :
  1577. $compare_function = 'strip_tags($el1) > strip_tags($el2)';
  1578. break;
  1579. case SORT_STRING :
  1580. $compare_function = 'strnatcmp(TableSort::orderingstring(strip_tags($el1)),TableSort::orderingstring(strip_tags($el2))) > 0';
  1581. break;
  1582. case SORT_IMAGE :
  1583. $compare_function = 'strnatcmp(TableSort::orderingstring(strip_tags($el1,"<img>")),TableSort::orderingstring(strip_tags($el2,"<img>"))) > 0';
  1584. break;
  1585. case SORT_DATE :
  1586. $compare_function = 'strtotime(strip_tags($el1)) > strtotime(strip_tags($el2))';
  1587. }
  1588. $function_body = '$el1 = $a['.$column.']; $el2 = $b['.$column.']; return ('.$direction.' == SORT_ASC ? ('.$compare_function.') : !('.$compare_function.'));';
  1589. // Sort the content
  1590. usort($data, create_function('$a,$b', $function_body));
  1591. return $data;
  1592. }
  1593. function listGroups($id_survey, $fields = '*'){
  1594. $groups_table = Database :: get_course_table(TABLE_MAIN_GROUP);
  1595. $sql = 'SELECT '.$fields.' FROM '.$groups_table.'
  1596. WHERE survey_id='.$id_survey.' ORDER BY sortby';
  1597. $rs = api_sql_query($sql, __FILE__, __LINE__);
  1598. $groups = array();
  1599. while($row = mysql_fetch_array($rs)){
  1600. $groups[] = $row;
  1601. }
  1602. return $groups;
  1603. }
  1604. function listQuestions($id_survey, $fields = '*'){
  1605. $questions_table = Database :: get_course_table(TABLE_MAIN_SURVEYQUESTION);
  1606. $groups_table = Database :: get_course_table('survey_group');
  1607. $sql = 'SELECT '.$fields.'
  1608. FROM '.$questions_table.' questions
  1609. INNER JOIN '.$groups_table.' groups
  1610. ON questions.gid = groups.group_id
  1611. WHERE questions.survey_id='.$id_survey.'
  1612. ORDER BY groups.sortby, questions.sortby';
  1613. $rs = api_sql_query($sql, __FILE__, __LINE__);
  1614. $questions = array();
  1615. while($row = mysql_fetch_array($rs)){
  1616. $questions[] = $row;
  1617. }
  1618. return $questions;
  1619. }
  1620. function listAnswers($qid){
  1621. $answers_table = Database :: get_course_table('survey_report');
  1622. $sql = 'SELECT DISTINCT answer FROM '.$answers_table.'
  1623. WHERE qid='.$qid;
  1624. $rs = api_sql_query($sql, __FILE__, __LINE__);
  1625. $answers = array();
  1626. while($row = mysql_fetch_array($rs)){
  1627. $answers[] = $row;
  1628. }
  1629. return $answers;
  1630. }
  1631. function listUsers($survey_id, $dbname, $fields='id, user_id, firstname, lastname, email, organization') {
  1632. $tbl_survey_users = Database :: get_main_table(TABLE_MAIN_SURVEY_USER);
  1633. $sql = 'SELECT '.$fields.' FROM '.$tbl_survey_users.'
  1634. WHERE survey_id='.$survey_id.'
  1635. AND db_name="'.$dbname.'"
  1636. ORDER BY lastname, firstname ';
  1637. $rs = api_sql_query($sql, __FILE__, __LINE__);
  1638. $users = array();
  1639. while($row = mysql_fetch_array($rs))
  1640. $users[] = $row;
  1641. return $users;
  1642. }
  1643. function getUserAnswersDetails($id_userAnswers, $params=''){
  1644. $table_answers = Database :: get_main_table(TABLE_MAIN_SURVEY_USER);
  1645. $sql = 'SELECT * FROM '.$table_answers.' '.$where.' '.$order;
  1646. $rs = api_sql_query($sql, __FILE__, __LINE__);
  1647. $answers = array();
  1648. while($row = mysql_fetch_array($rs))
  1649. $answers[] = $row;
  1650. return $answers;
  1651. }
  1652. }
  1653. ?>