ILIAS  Release_4_2_x_branch Revision 61807
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilPCQuestion.php
Go to the documentation of this file.
1 <?php
2 /*
3  +-----------------------------------------------------------------------------+
4  | ILIAS open source |
5  +-----------------------------------------------------------------------------+
6  | Copyright (c) 1998-2001 ILIAS open source, University of Cologne |
7  | |
8  | This program is free software; you can redistribute it and/or |
9  | modify it under the terms of the GNU General Public License |
10  | as published by the Free Software Foundation; either version 2 |
11  | of the License, or (at your option) any later version. |
12  | |
13  | This program is distributed in the hope that it will be useful, |
14  | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16  | GNU General Public License for more details. |
17  | |
18  | You should have received a copy of the GNU General Public License |
19  | along with this program; if not, write to the Free Software |
20  | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21  +-----------------------------------------------------------------------------+
22 */
23 
24 require_once("./Services/COPage/classes/class.ilPageContent.php");
25 
37 {
38  var $dom;
39  var $q_node; // node of Paragraph element
40 
44  function init()
45  {
46  $this->setType("pcqst");
47  }
48 
52  function setNode(&$a_node)
53  {
54  parent::setNode($a_node); // this is the PageContent node
55  $this->q_node =& $a_node->first_child(); //... and this the Question
56  }
57 
63  function setQuestionReference($a_questionreference)
64  {
65  if (is_object($this->q_node))
66  {
67  $this->q_node->set_attribute("QRef", $a_questionreference);
68  }
69  }
70 
77  {
78  if (is_object($this->q_node))
79  {
80  return $this->q_node->get_attribute("QRef", $a_questionreference);
81  }
82  return false;
83  }
84 
88  function create(&$a_pg_obj, $a_hier_id)
89  {
90  $this->createPageContentNode();
91  $a_pg_obj->insertContent($this, $a_hier_id, IL_INSERT_AFTER);
92  $this->q_node = $this->dom->create_element("Question");
93  $this->q_node = $this->node->append_child($this->q_node);
94  $this->q_node->set_attribute("QRef", "");
95  }
96 
103  function copyPoolQuestionIntoPage($a_q_id, $a_hier_id)
104  {
105  include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
106  include_once "./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
107  $question = assQuestion::_instanciateQuestion($a_q_id);
108  $duplicate_id = $question->copyObject(0, $question->getTitle());
109  $duplicate = assQuestion::_instanciateQuestion($duplicate_id);
110  $duplicate->setObjId(0);
111 
112  // we remove everything not supported by the non-tiny self
113  // assessment question editor
114  $q = $duplicate->getQuestion();
116  $tstr = "";
117  foreach ($tags as $t)
118  {
119  $tstr.="<".$t.">";
120  }
121  $q = ilUtil::secureString($q, true, $tstr);
122  // self assessment uses nl2br, not p
123  $duplicate->setQuestion($q);
124 
125  $duplicate->saveQuestionDataToDb();
126 
127  $this->q_node->set_attribute("QRef", "il__qst_".$duplicate_id);
128  }
129 
130 }
131 ?>