survey_list.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. <?php
  2. // $Id: group_list.php,v 1.15.2.1 2006/02/13 09:15:57 surbhi Exp $
  3. /*
  4. ==============================================================================
  5. Dokeos - elearning and course management software
  6. Copyright (c) 2004 Dokeos S.A.
  7. Copyright (c) 2003 University of Ghent (UGent)
  8. Copyright (c) 2001 Universite catholique de Louvain (UCL)
  9. Copyright (c) Olivier Brouckaert
  10. For a full list of contributors, see "credits.txt".
  11. The full license can be read in "license.txt".
  12. This program is free software; you can redistribute it and/or
  13. modify it under the terms of the GNU General Public License
  14. as published by the Free Software Foundation; either version 2
  15. of the License, or (at your option) any later version.
  16. See the GNU General Public License for more details.
  17. Contact: Dokeos, 181 rue Royale, B-1000 Brussels, Belgium, info@dokeos.com
  18. ==============================================================================
  19. */
  20. /**
  21. ==============================================================================
  22. @author Bart Mollet
  23. * @package dokeos.admin
  24. ==============================================================================
  25. */
  26. /*
  27. ==============================================================================
  28. INIT SECTION
  29. ==============================================================================
  30. */
  31. $langFile = 'survey';
  32. require ('../inc/global.inc.php');
  33. //require_once('../survey/send_mail.php');
  34. require_once (api_get_path(LIBRARY_PATH)."/surveymanager.lib.php");
  35. $status = surveymanager::get_status();
  36. api_protect_course_script();
  37. if($status==5)
  38. {
  39. api_protect_admin_script();
  40. }
  41. $cidReq = $_SESSION[_course][id];
  42. require_once (api_get_path(LIBRARY_PATH)."/course.lib.php");
  43. $table_survey = Database :: get_course_table('survey');
  44. $table_group = Database :: get_course_table('survey_group');
  45. $table_question = Database :: get_course_table('questions');
  46. $table_course = Database :: get_main_table(MAIN_COURSE_TABLE);
  47. $sql = "SELECT * FROM $table_course WHERE code = '$cidReq'";
  48. $res = api_sql_query($sql,__FILE__,__LINE__);
  49. $obj=@mysql_fetch_object($res);
  50. $db_name = $obj->db_name ;
  51. $published = $_REQUEST['published'];
  52. $surveyid=$_REQUEST['surveyid'];
  53. //$interbredcrump[] = array ("url" => "survey_list.php", "name" => get_lang('SurveyList'));
  54. if (isset ($_REQUEST['action']))
  55. {
  56. $cidReq=$_REQUEST['cidReq'];
  57. $table_survey = Database :: get_course_table('survey');
  58. switch ($_REQUEST['action'])
  59. {
  60. case 'delete_surveys' :
  61. $survey_codes = $_REQUEST['survey_delete'];
  62. if (count($survey_codes) > 0)
  63. {
  64. foreach ($survey_codes as $index => $survey_code)
  65. {
  66. SurveyManager::delete_survey($survey_code,$table_survey,$table_group,$table_question);
  67. }
  68. }
  69. break;
  70. }
  71. if (isset($_POST['newsurvey']))
  72. {
  73. header("Location:survey.php");
  74. exit;
  75. }
  76. }
  77. if (isset ($_GET['search']) && $_GET['search'] == 'advanced')
  78. {
  79. $db_name = $_GET['db_name'];
  80. $sql = "SELECT * FROM $db_name.survey";
  81. $res = api_sql_query($sql,__FILE__,__LINE__);
  82. $titles = array ();
  83. while ($title = mysql_fetch_array($res, MYSQL_ASSOC))
  84. {
  85. $titles[] = $title;
  86. }
  87. //$interbredcrump[] = array ("url" => "index.php", "name" => get_lang('Survey'));
  88. //$interbredcrump[] = array ("url" => 'survey_list.php', "name" => get_lang('SurveyList'));
  89. $tool_name = get_lang('SearchASurvey');
  90. Display :: display_header($tool_name);
  91. api_display_tool_title($tool_name);
  92. ?>
  93. <form method="get" action="survey_list.php">
  94. <input type="hidden" name="cidReq" value="<?=$cidReq?>">
  95. <input type="hidden" name="db_name" value="<?=$db_name?>">
  96. <table>
  97. <tr>
  98. <td>
  99. <?php echo get_lang('Title'); ?>
  100. </td>
  101. <td>
  102. <input type="text" name="keyword_title"/>
  103. </td>
  104. </tr>
  105. <tr>
  106. <td>
  107. <?php echo get_lang('Code'); ?>
  108. </td>
  109. <td>
  110. <input type="text" name="keyword_code"/>
  111. </td>
  112. </tr>
  113. <tr>
  114. <td>
  115. <?php echo get_lang('Language'); ?>
  116. </td>
  117. <td>
  118. <select name="keyword_language">
  119. <option value="%"><?php echo get_lang('All') ?></option>
  120. <?php
  121. $languages = api_get_languages();
  122. foreach ($languages['name'] as $index => $name)
  123. {
  124. echo '<option value="'.$languages['folder'][$index].'">'.$name.'</option>';
  125. }
  126. ?>
  127. </select>
  128. </td>
  129. </tr>
  130. <tr>
  131. <td>
  132. </td>
  133. <td>
  134. <input type="submit" value="<?php echo get_lang('Ok'); ?>"/>
  135. </td>
  136. </table>
  137. </form>
  138. <?php
  139. }
  140. else
  141. {
  142. //$interbredcrump[] = array ("url" => "index.php", "name" => get_lang('Survey'));
  143. $tool_name = get_lang('Survey');
  144. Display :: display_header($tool_name);
  145. api_display_tool_title($tool_name);
  146. if(isset($published))
  147. {
  148. $sname = surveymanager::pick_surveyname($surveyid);
  149. $error_message = get_lang('YourSurveyhasbeenPublished');
  150. Display::display_error_message("Survey "."'".$sname."'"." ".$error_message);
  151. }
  152. if (isset ($_GET['delete_course']))
  153. {
  154. CourseManager :: delete_course($_GET['delete_course']);
  155. }
  156. ?>
  157. <form method="get" action="survey_list.php?cidReq=<?=$cidReq?>">
  158. <input type="hidden" name="cidReq" value="<?=$cidReq?>">
  159. <input type="hidden" name="db_name" value="<?=$db_name?>">
  160. <input type="text" name="keyword" value="<?php echo $_GET['keyword']; ?>"/>
  161. <input type="submit" value="<?php echo get_lang('Search'); ?>"/>
  162. <a href="survey_list.php?cidReq=<?=$cidReq?>&search=advanced&db_name=<?=$db_name?>"><?php echo get_lang('AdvancedSearch'); ?></a>
  163. </form>
  164. <?php
  165. $table_survey = Database :: get_course_table('survey');
  166. if (isset ($_GET['keyword']))
  167. {
  168. $keyword = addslashes($_GET['keyword']);
  169. $sql = "SELECT * FROM ".$table_survey." WHERE title LIKE '%".$keyword."%' OR code LIKE '%".$keyword."%'";
  170. $parameters = array ('keyword' => $_GET['keyword']);
  171. $parameters['surveyid']=$surveyid;
  172. $parameters['newgroupid']=$groupid;
  173. $parameters['cidReq']=$cidReq;
  174. }
  175. elseif (isset ($_GET['keyword_title']))
  176. {
  177. $keyword_title = addslashes($_GET['keyword_title']);
  178. $keyword_code = addslashes($_GET['keyword_code']);
  179. $keyword_language = addslashes($_GET['keyword_language']);
  180. $sql = "SELECT * FROM ".$table_survey." WHERE title LIKE '%".$keyword_title."%' AND code LIKE '%".$keyword_code."%' AND lang LIKE '%".$keyword_language."%'";
  181. $parameters['keyword_title'] = $_GET['keyword_title'];
  182. $parameters['keyword_code'] = $_GET['keyword_code'];
  183. $parameters['keyword_language'] = $_GET['keyword_language'];
  184. $parameters['surveyid']=$surveyid;
  185. $parameters['newgroupid']=$groupid;
  186. $parameters['cidReq']=$cidReq;
  187. }
  188. else
  189. {
  190. $sql = "SELECT * FROM ".$table_survey;
  191. $parameters = array ();
  192. $parameters['surveyid']=$surveyid;
  193. $parameters['newgroupid']=$groupid;
  194. $parameters['cidReq']=$cidReq;
  195. }
  196. $res = api_sql_query($sql,__FILE__,__LINE__);
  197. if (mysql_num_rows($res) > 0)
  198. {
  199. $user_info = Database::get_main_table(MAIN_SURVEY_REMINDER_TABLE);
  200. $courses = array ();
  201. while ($obj = mysql_fetch_object($res))
  202. {
  203. $template=$obj->template;
  204. $surveyid = $obj->survey_id;
  205. if($template=='template1'){$view='white';}
  206. elseif($template=='template2'){$view='blue';}
  207. elseif($template=='template3'){$view='brown';}
  208. elseif($template=='template4'){$view='gray';}
  209. else{$view=='blank';}
  210. $sql_sent=" SELECT DISTINCT user_info.*
  211. FROM $user_info as user_info
  212. INNER JOIN $table_survey as survey
  213. ON user_info.sid = survey.survey_id
  214. AND survey.code = '".$obj->code."'";
  215. $res_sent=api_sql_query($sql_sent);
  216. $sent=mysql_num_rows($res_sent);
  217. $attempted=0;
  218. $sqlAttempt = ' SELECT DISTINCT *
  219. FROM '.Database::get_main_table(MAIN_SURVEY_USER_TABLE).'
  220. WHERE survey_id='.$obj->survey_id.' AND db_name="'.$db_name.'"';
  221. $res_attempt=api_sql_query($sqlAttempt);
  222. $attempted=mysql_num_rows($res_attempt);
  223. /*while($object=mysql_fetch_object($res_attempt))
  224. {
  225. if($object->access=='1' && $object->sid==$obj->survey_id)
  226. $attempted++;
  227. }*/
  228. if($sent=='0')
  229. {$ratio=$attempted."/".$sent." "."(Not Published)";}
  230. else
  231. $ratio=$attempted."/".$sent;
  232. $survey = array ();
  233. $survey[] = '<input type="checkbox" name="survey_delete[]" value="'.$obj->survey_id.'">';
  234. $survey[] = $obj->title;
  235. $survey[] = $obj->code;
  236. $idd=surveymanager::get_author($db_name,$surveyid);
  237. $author=surveymanager::get_survey_author($idd);
  238. $survey[] = $author;
  239. $survey[] = $obj->lang;
  240. $survey[] = $obj->avail_from ;
  241. $survey[] = $obj->avail_till ;
  242. $survey[] = $ratio;
  243. //$NoOfQuestion=surveymanager::no_of_question($gid);
  244. //$language=surveymanager::no_of_question($sid);
  245. $survey[] = '<a href="survey_edit.php?surveyid='.$obj->survey_id.'&cidReq='.$cidReq.'"><img src="../img/edit.gif" border="0" align="absmiddle" alt="'.get_lang('Edit1').'"/></a>'.'<a href="survey_list.php?cidReq='.$cidReq.'&action=delete_surveys&survey_delete[]='.$obj->survey_id.'&delete_survey='.$obj->survey_id.'" onclick="javascript:if(!confirm('."'".addslashes(htmlentities(get_lang("ConfirmYourChoice")))."'".')) return false;"><img src="../img/delete.gif" border="0" align="absmiddle" alt="'.get_lang('Delete1').'"/></a>'.'<a href="create_survey_in_another_language.php?cidReq='.$cidReq.'&id_survey='.$obj->survey_id.'"><img width="28" src="../img/copy.gif" border="0" align="absmiddle" alt="'.get_lang('CreateInAnotherLanguage').'" title="'.get_lang('CreateInAnotherLanguage').'" /></a>'.'<a href="survey_white.php?surveyid='.$surveyid.'&db_name='.$db_name.'&cidReq='.$cidReq.'&temp='.$template.'">&nbsp;<img src="../img/visible.gif" border="0" align="absmiddle" alt="'.get_lang('ViewSurvey').'"></a>'.'<a href="../announcements/announcements.php?action=add&cidReq='.$cidReq.'&db_name='.$db_name.'&publish_survey='.$obj->survey_id.'">&nbsp;<img src="../img/survey_publish.gif" border="0" align="absmiddle" alt="'.get_lang('publish').'"></a>'.'<a href="reporting.php?action=reporting&cidReq='.$cidReq.'&db_name='.$db_name.'&surveyid='.$obj->survey_id.'">&nbsp;<img src="../img/surveyreporting.gif" border="0" align="absmiddle" alt="'.get_lang('Reporting').'"></a>';
  246. $surveys[] = $survey;
  247. }
  248. $table_header[] = array (' ', false);
  249. $table_header[] = array (get_lang('SurveyName1'), true);
  250. $table_header[] = array (get_lang('SurveyCode'), true);
  251. $table_header[] = array (get_lang('author'), true);
  252. $table_header[] = array (get_lang('Language'), true);
  253. $table_header[] = array (get_lang('AvailableFrom'), true);
  254. $table_header[] = array (get_lang('AvailableTill'), true);
  255. $table_header[] = array (get_lang('AnsTarget'), true);
  256. $table_header[] = array (' ', false);
  257. echo '<form method="get" action="survey_list.php" name="frm">';
  258. Display :: display_sortable_table($table_header, $surveys, array (), array (), $parameters);
  259. echo '<select name="action">';
  260. echo '<option value="delete_surveys">'.get_lang('DeleteSurvey').'</option>';
  261. echo '</select>';
  262. echo '<input type="hidden" name="cidReq" value="'.$cidReq.'">';
  263. echo '&nbsp;&nbsp;<input type="submit" value="'.get_lang('Ok1').'" onclick="return validate(\'frm\');"/>';
  264. echo '</form>';
  265. }
  266. else
  267. {
  268. if((isset ($_GET['keyword'])) || (isset ($_GET['keyword_title']))){
  269. echo get_lang('NoSearchResults') ;
  270. }
  271. else{
  272. $nosurvey=get_lang("NoSurveyAvailableinthelist");
  273. api_display_tool_title($nosurvey);
  274. }
  275. }
  276. }
  277. if(!isset ($_GET['search']))
  278. {
  279. ?>
  280. <form action="survey.php?cidReq=<?=$_SESSION[_course][id]?>" method="post">
  281. <input type="submit" name="newsurvey" value="<?=get_lang('CreateSurvey')?>">
  282. <input type="hidden" name="cidReq" value="<?=$cidReq?>">
  283. <input type="hidden" name="db_name" value="<?=$db_name?>">
  284. </form>
  285. <?php
  286. }
  287. /*
  288. ==============================================================================
  289. FOOTER
  290. ==============================================================================
  291. */
  292. Display :: display_footer();
  293. ?>
  294. <script language="javascript">
  295. function validate(form)
  296. {
  297. var count = 0;
  298. if(typeof eval("document."+form+"['survey_delete[]'].length")=="undefined")
  299. {
  300. if(eval("document."+form+"['survey_delete[]'].checked"))
  301. {
  302. count=1;
  303. }
  304. else
  305. {
  306. count=0;
  307. }
  308. }
  309. else
  310. for(i=0;i<eval("document."+form+"['survey_delete[]'].length");i++)
  311. {
  312. var box = (eval("document."+form+"['survey_delete[]']["+i+"]"));
  313. if (box.checked == true)
  314. {
  315. count++;
  316. }
  317. }
  318. if(count<1)
  319. {
  320. alert("Please Select at least one Survey for deletion");
  321. return false;
  322. }
  323. else
  324. {
  325. if(!confirm("Please Confirm Your Choice"))
  326. return false;
  327. else
  328. return true;
  329. }
  330. }
  331. </script>