surveymanager.lib.php 65 KB

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