ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ilObjQuestionPoolGUI Class Reference

Class ilObjQuestionPoolGUI. More...

+ Inheritance diagram for ilObjQuestionPoolGUI:
+ Collaboration diagram for ilObjQuestionPoolGUI:

Public Member Functions

 downloadFileObject ()
 
 fullscreenObject ()
 show fullscreen view More...
 
 download_paragraphObject ()
 download source code paragraph More...
 
 importVerifiedFileObject ()
 
 importVerifiedQuestionsFileObject ()
 
 uploadQuestionsImportObject ()
 
 afterSave (ilObject $new_object)
 
 confirmDeleteQuestions (array $ids)
 
 deleteQuestionsObject ()
 delete questions confirmation screen More...
 
 confirmDeleteQuestionsObject ()
 delete questions after confirmation More...
 
 cancelDeleteQuestionsObject ()
 
 exportQuestions (array $ids)
 
 questionsObject (?RoundTripModal $import_questions_modal=null)
 list questions of question pool More...
 
 printObject ()
 
 updateObject ()
 
 pasteObject ()
 
 copyQuestions (array $ids)
 
 moveQuestions (array $ids)
 
 createExportExcel ()
 
 editQuestionForTestObject ()
 
 addLocatorItems ()
 
 setTitleAndDescription ()
 called by prepare output More...
 
 getTabs ()
 adds tabs to tab gui object More...
 
 infoScreenObject ()
 
 infoScreenForward ()
 
- Public Member Functions inherited from ilObjectGUI
 getRefId ()
 
 setAdminMode (string $mode)
 
 getAdminMode ()
 
 getObject ()
 
 executeCommand ()
 
 withReferences ()
 determines whether objects are referenced or not (got ref ids or not) More...
 
 setCreationMode (bool $mode=true)
 If true, a creation screen is displayed the current [ref_id] does belong to the parent class The mode is determined in ilRepositoryGUI. More...
 
 getCreationMode ()
 
 prepareOutput (bool $show_sub_objects=true)
 
 getAdminTabs ()
 administration tabs show only permissions and trash folder More...
 
 getHTML ()
 
 confirmedDeleteObject ()
 confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled More...
 
 cancelObject ()
 cancel action and go back to previous page More...
 
 createObject ()
 create new object form More...
 
 editAvailabilityPeriodObject ()
 
 saveAvailabilityPeriodObject ()
 
 cancelCreation ()
 cancel create action and go back to repository parent More...
 
 saveObject ()
 
 getDidacticTemplateVar (string $type)
 Get didactic template setting from creation screen. More...
 
 putObjectInTree (ilObject $obj, ?int $parent_node_id=null)
 Add object to tree at given position. More...
 
 editObject ()
 
 addExternalEditFormCustom (ilPropertyFormGUI $form)
 
 updateObject ()
 updates object entry in object_data More...
 
 getFormAction (string $cmd, string $default_form_action="")
 Get form action for command (command is method name without "Object", e.g. More...
 
 isVisible (int $ref_id, string $type)
 
 viewObject ()
 viewObject container presentation for "administration -> repository, trash, permissions" More...
 
 deleteObject (bool $error=false)
 Display deletion confirmation screen. More...
 
 setColumnSettings (ilColumnGUI $column_gui)
 
 addToDeskObject ()
 
 removeFromDeskObject ()
 
- Public Member Functions inherited from ILIAS\Object\ImplementsCreationCallback
 callCreationCallback (\ilObject $object, \ilObjectDefinition $obj_definition, int $requested_crtcb)
 

Data Fields

const SUPPORTED_IMPORT_MIME_TYPES = [MimeType::APPLICATION__ZIP, MimeType::TEXT__XML]
 
const DEFAULT_CMD = 'questions'
 
- Data Fields inherited from ilObjectGUI
const ADMIN_MODE_NONE = ""
 
const ADMIN_MODE_SETTINGS = "settings"
 
const ADMIN_MODE_REPOSITORY = "repository"
 
const UPLOAD_TYPE_LOCAL = 1
 
const UPLOAD_TYPE_UPLOAD_DIRECTORY = 2
 
const CFORM_NEW = 1
 
const CFORM_IMPORT = 2
 
const CFORM_CLONE = 3
 
const SUPPORTED_IMPORT_MIME_TYPES = [MimeType::APPLICATION__ZIP, MimeType::APPLICATION__X_ZIP_COMPRESSED]
 

Protected Member Functions

 redirectAfterMissingWrite ()
 
 exportObject ()
 Gateway for exports initiated from workspace, as there is a generic forward to {objTypeMainGUI}::export() More...
 
 renoveImportFailsObject ()
 
 fetchAuthoringQuestionIdParamater ()
 
 importQuestionsFile (string $path_to_uploaded_file_in_temp_dir)
 
 importFile (string $file_to_import, string $path_to_uploaded_file_in_temp_dir)
 
 getTable ()
 
- Protected Member Functions inherited from ilObjectGUI
 getObjectService ()
 
 assignObject ()
 
 setTitleAndDescription ()
 
 createActionDispatcherGUI ()
 
 initHeaderAction (?string $sub_type=null, ?int $sub_id=null)
 Add header action menu. More...
 
 insertHeaderAction (?ilObjectListGUI $list_gui=null)
 Insert header action into main template. More...
 
 addHeaderAction ()
 Add header action menu. More...
 
 redrawHeaderActionObject ()
 Ajax call: redraw action header only. More...
 
 setTabs ()
 set admin tabs More...
 
 setAdminTabs ()
 set admin tabs More...
 
 setLocator ()
 
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 omitLocator (bool $omit=true)
 
 addAdminLocatorItems (bool $do_not_add_object=false)
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 getCreationFormsHTML (StandardForm|ilPropertyFormGUI|array $form)
 
 getTitleForCreationFormPage ()
 
 getCreationFormTitle ()
 
 initCreateForm (string $new_type)
 
 didacticTemplatesToForm ()
 
 initDidacticTemplate (ilPropertyFormGUI $form)
 
 retrieveAdditionalDidacticTemplateOptions ()
 
 addAdoptContentLinkToToolbar ()
 
 addImportButtonToToolbar ()
 
 addAvailabilityPeriodButtonToToolbar (ilToolbarGUI $toolbar)
 
 parseDidacticTemplateVar (string $var, string $type)
 
 afterSave (ilObject $new_object)
 Post (successful) object creation hook. More...
 
 initEditForm ()
 
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Add custom fields to update form. More...
 
 getEditFormValues ()
 
 getEditFormCustomValues (array &$a_values)
 Add values to custom edit fields. More...
 
 validateCustom (ilPropertyFormGUI $form)
 Validate custom values (if not possible with checkInput()) More...
 
 updateCustom (ilPropertyFormGUI $form)
 Insert custom update form values into object. More...
 
 afterUpdate ()
 Post (successful) object update hook. More...
 
 routeImportCmdObject ()
 
 importFile (string $file_to_import, string $path_to_uploaded_file_in_temp_dir)
 
 deleteUploadedImportFile (string $path_to_uploaded_file_in_temp_dir)
 
 afterImport (ilObject $new_object)
 Post (successful) object import hook. More...
 
 setFormAction (string $cmd, string $form_action)
 
 getReturnLocation (string $cmd, string $default_location="")
 Get return location for command (command is method name without "Object", e.g. More...
 
 setReturnLocation (string $cmd, string $location)
 set specific return location for command More...
 
 getTargetFrame (string $cmd, string $default_target_frame="")
 get target frame for command (command is method name without "Object", e.g. More...
 
 setTargetFrame (string $cmd, string $target_frame)
 Set specific target frame for command. More...
 
 showPossibleSubObjects ()
 show possible sub objects (pull down menu) More...
 
 getTabs ()
 overwrite in derived GUI class of your object type More...
 
 redirectToRefId (int $ref_id, string $cmd="")
 redirects to (repository) view per ref id usually to a container and usually used at the end of a save/import method where the object gui type (of the new object) doesn't match with the type of the current ["ref_id"] value of the request More...
 
 getCenterColumnHTML ()
 Get center column. More...
 
 getRightColumnHTML ()
 Display right column. More...
 
 checkPermission (string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
 checkPermissionBool (string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
 enableDragDropFileUpload ()
 Enables the file upload into this object by dropping files. More...
 
 getCreatableObjectTypes ()
 
 buildAddNewItemElements (array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)
 
 buildGroup (string $create_target_class, array $obj_types_in_group, string $title, array $subtypes)
 

Protected Attributes

Service $taxonomy
 
ilDBInterface $db
 
ilComponentLogger $log
 
ilHelpGUI $help
 
GlobalScreen $global_screen
 
ilComponentFactory $component_factory
 
ilComponentRepository $component_repository
 
ilNavigationHistory $navigation_history
 
ilUIService $ui_service
 
DataFactory $data_factory
 
URLBuilder $url_builder
 
URLBuilderToken $action_parameter_token
 
URLBuilderToken $row_id_token
 
RequestDataCollector $request_data_collector
 
GeneralQuestionPropertiesRepository $questionrepository
 
GlobalTestSettings $global_test_settings
 
- Protected Attributes inherited from ilObjectGUI
ILIAS Notes Service $notes_service
 
GlobalHttpState $http
 
ServerRequestInterface $request
 
ilLocatorGUI $locator
 
ilObjUser $user
 
ilAccessHandler $access
 
ilSetting $settings
 
ilToolbarGUI $toolbar
 
ilRbacAdmin $rbac_admin
 
ilRbacSystem $rbac_system
 
ilRbacReview $rbac_review
 
ilObjectService $object_service
 
ilObjectDefinition $obj_definition
 
ilGlobalTemplateInterface $tpl
 
ilTree $tree
 
ilCtrl $ctrl
 
ilErrorHandling $error
 
ilLanguage $lng
 
ilTabsGUI $tabs_gui
 
ILIAS $ilias
 
ArrayBasedRequestWrapper $post_wrapper
 
RequestWrapper $request_wrapper
 
Refinery $refinery
 
ilFavouritesManager $favourites
 
CustomIconFactory $custom_icon_factory
 
UIFactory $ui_factory
 
UIRenderer $ui_renderer
 
Filesystem $temp_file_system
 
ilObject $object = null
 
bool $creation_mode = false
 
 $data
 
int $id
 
bool $call_by_reference = false
 
bool $prepare_output
 
int $ref_id
 
int $obj_id
 
int $maxcount
 
array $form_action = []
 
array $return_location = []
 
array $target_frame = []
 
string $tmp_import_dir
 
string $sub_objects = ""
 
bool $omit_locator = false
 
string $type = ""
 
string $admin_mode = self::ADMIN_MODE_NONE
 
int $requested_ref_id = 0
 
int $requested_crtptrefid = 0
 
int $requested_crtcb = 0
 
string $requested_new_type = ""
 
string $link_params
 
string $html = ""
 

Private Member Functions

 buildImportQuestionsModal ()
 
 importQuestionPoolWithValidManifest (ilObjQuestionPool $obj, array $selected_questions, string $file_to_import)
 
 importQuestionsFromQtiFile (ilObjQuestionPool $obj, array $selected_questions, string $qtifile, string $importdir, string $xmlfile='')
 
 cleanupAfterImport (string $importdir)
 
 createQuestionFormObject (?Form $form=null)
 
 buildQuestionCreationForm ()
 
 buildInputQuestionType ()
 
 buildInputEditingType ()
 
 isSkillsTabRequired ()
 
 addSettingsSubTabs (ilTabsGUI $tabs)
 

Private Attributes

Archives $archives
 
ContentStyle $content_style
 

Additional Inherited Members

- Static Public Member Functions inherited from ilObjectGUI
static _gotoRepositoryRoot (bool $raise_error=false)
 Goto repository root. More...
 
static _gotoRepositoryNode (int $ref_id, string $cmd="")
 
static _gotoSharedWorkspaceNode (int $wsp_id)
 

Detailed Description

Member Function Documentation

◆ addLocatorItems()

ilObjQuestionPoolGUI::addLocatorItems ( )

Definition at line 1375 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$locator, assQuestionGUI\_getQuestionGUI(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), null, and ILIAS\Repository\object().

1375  : void
1376  {
1377  $ilLocator = $this->locator;
1378 
1379  switch ($this->ctrl->getCmd()) {
1380  case 'create':
1381  case 'importFile':
1382  case 'cancel':
1383  break;
1384  default:
1385  $this->ctrl->clearParameterByClass(self::class, 'q_id');
1386  $ilLocator->addItem(
1387  $this->object->getTitle(),
1388  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], ''),
1389  '',
1390  $this->request_data_collector->getRefId()
1391  );
1392  $this->ctrl->setParameter($this, 'q_id', $this->request_data_collector->getQuestionId());
1393  break;
1394  }
1395 
1396  if (!is_array($this->request_data_collector->raw('q_id')) && $this->request_data_collector->raw('q_id') > 0 && $this->request_data_collector->raw(
1397  'cmd'
1398  ) !== self::DEFAULT_CMD) {
1399  $question_gui = assQuestionGUI::_getQuestionGUI('', $this->request_data_collector->getQuestionId());
1400  if ($question_gui !== null && $question_gui->getObject() instanceof assQuestion) {
1401  $question = $question_gui->getObject();
1402  $question->setObjId($this->object->getId());
1403  $question_gui->setObject($question);
1404  $title = $question_gui->getObject()->getTitleForHTMLOutput();
1405  if (!$title) {
1406  $title = $this->lng->txt('new') . ': ' . $this->questionrepository->getForQuestionId(
1407  $question_gui->getObject()->getId()
1408  )->getTypeName($this->lng);
1409  }
1410  $ilLocator->addItem($title, $this->ctrl->getLinkTargetByClass(get_class($question_gui), 'editQuestion'));
1411  } else {
1412  // Workaround for context issues: If no object was found, redirect without q_id parameter
1413  $this->ctrl->setParameter($this, 'q_id', '');
1414  $this->ctrl->redirect($this);
1415  }
1416  }
1417  }
static _getQuestionGUI(string $question_type='', int $question_id=-1)
Creates a question gui representation and returns the alias to the question gui.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
ilLocatorGUI $locator
+ Here is the call graph for this function:

◆ addSettingsSubTabs()

ilObjQuestionPoolGUI::addSettingsSubTabs ( ilTabsGUI  $tabs)
private

Definition at line 1675 of file class.ilObjQuestionPoolGUI.php.

References ilTabsGUI\addSubTab(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ilObjQuestionPoolSettingsGeneralGUI\TAB_COMMON_SETTINGS.

Referenced by getTabs().

1675  : void
1676  {
1677  $tabs->addSubTab(
1679  $this->lng->txt('qpl_settings_subtab_general'),
1680  $this->ctrl->getLinkTargetByClass(ilObjQuestionPoolSettingsGeneralGUI::class),
1681  );
1682 
1683  $tabs->addSubTab(
1684  'tax_settings',
1685  $this->lng->txt('qpl_settings_subtab_taxonomies'),
1686  $this->ctrl->getLinkTargetByClass(ilTaxonomySettingsGUI::class, ''),
1687  );
1688  }
addSubTab(string $a_id, string $a_text, string $a_link, string $a_frame="")
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ afterSave()

ilObjQuestionPoolGUI::afterSave ( ilObject  $new_object)

Definition at line 933 of file class.ilObjQuestionPoolGUI.php.

References ilObject\getRefId(), ILIAS\Repository\lng(), and ilUtil\redirect().

933  : void
934  {
935  // always send a message
936  $this->tpl->setOnScreenMessage('success', $this->lng->txt('object_added'), true);
937 
939  'ilias.php?ref_id=' . $new_object->getRefId() .
940  '&baseClass=ilObjQuestionPoolGUI'
941  );
942  }
static redirect(string $a_script)
+ Here is the call graph for this function:

◆ buildImportQuestionsModal()

ilObjQuestionPoolGUI::buildImportQuestionsModal ( )
private

Definition at line 834 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ILIAS\Repository\refinery().

Referenced by questionsObject(), and uploadQuestionsImportObject().

835  {
836  $constraint = $this->refinery->custom()->constraint(
837  function ($vs): bool {
838  if ($vs === []) {
839  return false;
840  }
841  return true;
842  },
843  $this->lng->txt('msg_no_files_selected')
844  );
845 
846  $file_upload_input = $this->ui_factory->input()->field()
847  ->file(new \QuestionPoolImportUploadHandlerGUI(), $this->lng->txt('import_file'))
848  ->withAcceptedMimeTypes(self::SUPPORTED_IMPORT_MIME_TYPES)
849  ->withMaxFiles(1)
850  ->withAdditionalTransformation($constraint);
851  return $this->ui_factory->modal()->roundtrip(
852  $this->lng->txt('import'),
853  [],
854  ['import_file' => $file_upload_input],
855  $this->ctrl->getFormActionByClass(self::class, 'uploadQuestionsImport')
856  )->withSubmitLabel($this->lng->txt('import'));
857  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildInputEditingType()

ilObjQuestionPoolGUI::buildInputEditingType ( )
private

Definition at line 1169 of file class.ilObjQuestionPoolGUI.php.

References assQuestion\ADDITIONAL_CONTENT_EDITING_MODE_IPE, assQuestion\ADDITIONAL_CONTENT_EDITING_MODE_RTE, ILIAS\Repository\lng(), ILIAS\UI\Implementation\Component\Input\withValue(), and ILIAS\UI\Component\Input\Input\withValue().

Referenced by buildQuestionCreationForm().

1169  : Input
1170  {
1171  if (!$this->global_test_settings->isPageEditorEnabled()) {
1172  return $this->ui_factory->input()->field()->hidden()->withValue(
1174  );
1175  }
1176 
1177  return $this->ui_factory->input()->field()->radio($this->lng->txt('tst_add_quest_cont_edit_mode'))
1178  ->withOption(
1180  $this->lng->txt('tst_add_quest_cont_edit_mode_IPE'),
1181  $this->lng->txt('tst_add_quest_cont_edit_mode_IPE_info')
1182  )->withOption(
1184  $this->lng->txt('tst_add_quest_cont_edit_mode_RTE'),
1185  $this->lng->txt('tst_add_quest_cont_edit_mode_RTE_info')
1186  )
1188  }
const ADDITIONAL_CONTENT_EDITING_MODE_IPE
withValue($value)
Get an input like this with another value displayed on the client side.
Definition: Group.php:61
withValue($value)
Get an input like this with another value displayed on the client side.
const ADDITIONAL_CONTENT_EDITING_MODE_RTE
This describes commonalities between all inputs.
Definition: Input.php:46
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildInputQuestionType()

ilObjQuestionPoolGUI::buildInputQuestionType ( )
private

Definition at line 1155 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$data, and ILIAS\Repository\lng().

Referenced by buildQuestionCreationForm().

1155  : Select
1156  {
1157  $question_types = (new ilObjQuestionPool())->getQuestionTypes(false, true, false);
1158  $options = [];
1159  foreach ($question_types as $label => $data) {
1160  $options[$data['question_type_id']] = $label;
1161  }
1162 
1163  return $this->ui_factory->input()->field()->select(
1164  $this->lng->txt('question_type'),
1165  $options
1166  )->withRequired(true);
1167  }
This describes select field.
Definition: Select.php:28
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildQuestionCreationForm()

ilObjQuestionPoolGUI::buildQuestionCreationForm ( )
private

Definition at line 1138 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\UI\Implementation\Component\Input\$inputs, buildInputEditingType(), buildInputQuestionType(), ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by cleanupAfterImport().

1138  : Form
1139  {
1140  $inputs['question_type'] = $this->buildInputQuestionType();
1141  $inputs['editing_type'] = $this->buildInputEditingType();
1142 
1143  $section = [
1144  $this->ui_factory->input()->field()->section($inputs, $this->lng->txt('ass_create_question'))
1145  ];
1146 
1147  $form = $this->ui_factory->input()->container()->form()->standard(
1148  $this->ctrl->getFormAction($this, 'createQuestion'),
1149  $section
1150  )->withSubmitLabel($this->lng->txt('create'));
1151 
1152  return $form;
1153  }
This describes commonalities between all forms.
Definition: Form.php:32
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cancelDeleteQuestionsObject()

ilObjQuestionPoolGUI::cancelDeleteQuestionsObject ( )

Definition at line 1015 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl().

1015  : void
1016  {
1017  $this->ctrl->redirect($this, self::DEFAULT_CMD);
1018  }
+ Here is the call graph for this function:

◆ cleanupAfterImport()

ilObjQuestionPoolGUI::cleanupAfterImport ( string  $importdir)
private

Definition at line 901 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$data, assQuestionGUI\_getQuestionGUI(), buildQuestionCreationForm(), ilSession\clear(), createQuestionFormObject(), ILIAS\Repository\ctrl(), ilFileUtils\delDir(), ilObjectGUI\deleteUploadedImportFile(), ilSession\get(), ilObjQuestionPool\getQuestionTypeByTypeId(), null, and ILIAS\Repository\object().

Referenced by importVerifiedFileObject(), and importVerifiedQuestionsFileObject().

901  : void
902  {
903  ilFileUtils::delDir($importdir);
904  $this->deleteUploadedImportFile(ilSession::get('path_to_uploaded_file_in_temp_dir'));
905  ilSession::clear('path_to_import_file');
906  ilSession::clear('path_to_uploaded_file_in_temp_dir');
907  }
static get(string $a_var)
deleteUploadedImportFile(string $path_to_uploaded_file_in_temp_dir)
static delDir(string $a_dir, bool $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static clear(string $a_var)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ confirmDeleteQuestions()

ilObjQuestionPoolGUI::confirmDeleteQuestions ( array  $ids)

Definition at line 944 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$rbac_system, ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

944  : void
945  {
946  $rbacsystem = $this->rbac_system;
947 
948  $questionIdsToDelete = array_filter(array_map('intval', $ids));
949  if (0 === count($questionIdsToDelete)) {
950  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_delete_select_none'), true);
951  $this->ctrl->redirect($this, self::DEFAULT_CMD);
952  }
953 
954  $this->tpl->setOnScreenMessage('question', $this->lng->txt('qpl_confirm_delete_questions'));
955  $deleteable_questions = $this->object->getDeleteableQuestionDetails($questionIdsToDelete);
956  $table_gui = new ilQuestionBrowserTableGUI($this, self::DEFAULT_CMD, (($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId()) ? true : false)), true);
957  $table_gui->setShowRowsSelector(false);
958  $table_gui->setLimit(PHP_INT_MAX);
959  $table_gui->setEditable($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId()));
960  $table_gui->setData($deleteable_questions);
961  $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
962  }
ilRbacSystem $rbac_system
+ Here is the call graph for this function:

◆ confirmDeleteQuestionsObject()

ilObjQuestionPoolGUI::confirmDeleteQuestionsObject ( )

delete questions after confirmation

Definition at line 1000 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

1000  : void
1001  {
1002  $qst_ids = $this->request_data_collector->intArray('q_id');
1003  foreach ($qst_ids as $value) {
1004  $this->object->deleteQuestion((int) $value);
1005  $this->object->cleanupClipboard((int) $value);
1006  }
1007  if ($qst_ids !== []) {
1008  $this->tpl->setOnScreenMessage('success', $this->lng->txt('qpl_questions_deleted'), true);
1009  }
1010 
1011  $this->ctrl->setParameter($this, 'q_id', '');
1012  $this->ctrl->redirect($this, self::DEFAULT_CMD);
1013  }
+ Here is the call graph for this function:

◆ copyQuestions()

ilObjQuestionPoolGUI::copyQuestions ( array  $ids)

Definition at line 1240 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$id, and ILIAS\Repository\lng().

1240  : void
1241  {
1242  if ($ids) {
1243  foreach ($ids as $id) {
1244  $this->object->copyToClipboard($id);
1245  }
1246  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_copy_insert_clipboard'), true);
1247  } else {
1248  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_copy_select_none'), true);
1249  }
1250  }
+ Here is the call graph for this function:

◆ createExportExcel()

ilObjQuestionPoolGUI::createExportExcel ( )

Definition at line 1264 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$rbac_system, and ILIAS\Repository\ctrl().

1264  : void
1265  {
1266  $rbacsystem = $this->rbac_system;
1267  if ($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId())) {
1268  $question_ids = &$this->object->getAllQuestionIds();
1269  $qpl_exp = new ilQuestionpoolExport($this->object, 'xlsx', $question_ids);
1270  $qpl_exp->buildExportFile();
1271  $this->ctrl->redirectByClass('ilquestionpoolexportgui', '');
1272  }
1273  }
ilRbacSystem $rbac_system
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:

◆ createQuestionFormObject()

ilObjQuestionPoolGUI::createQuestionFormObject ( ?Form  $form = null)
private

Definition at line 1122 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\help().

Referenced by cleanupAfterImport().

1122  : void
1123  {
1124  $this->help->setScreenId('assQuestions');
1125  if ($this->global_test_settings->isPageEditorEnabled()) {
1126  $this->help->setSubScreenId('createQuestion_editMode');
1127  } else {
1128  $this->help->setSubScreenId('createQuestion');
1129  }
1130 
1131  $this->tpl->setContent(
1132  $this->ui_renderer->render(
1133  $form ?? $this->buildQuestionCreationForm()
1134  )
1135  );
1136  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteQuestionsObject()

ilObjQuestionPoolGUI::deleteQuestionsObject ( )

delete questions confirmation screen

Definition at line 967 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$rbac_system, ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

967  : void
968  {
969  $rbacsystem = $this->rbac_system;
970 
971  $questionIdsToDelete = $this->request_data_collector->isset('q_id') ? (array) $this->request_data_collector->raw('q_id') : [];
972  if ($questionIdsToDelete === [] && $this->request_data_collector->isset('q_id')) {
973  $questionIdsToDelete = [$this->request_data_collector->getQuestionId()];
974  }
975 
976  $questionIdsToDelete = array_filter(array_map('intval', $questionIdsToDelete));
977  if ($questionIdsToDelete === []) {
978  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_delete_select_none'), true);
979  $this->ctrl->redirect($this, self::DEFAULT_CMD);
980  }
981 
982  $this->tpl->setOnScreenMessage('question', $this->lng->txt('qpl_confirm_delete_questions'));
983  $deleteable_questions = &$this->object->getDeleteableQuestionDetails($questionIdsToDelete);
984  $table_gui = new ilQuestionBrowserTableGUI(
985  $this,
986  self::DEFAULT_CMD,
987  (($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId()) ? true : false)),
988  true
989  );
990  $table_gui->setShowRowsSelector(false);
991  $table_gui->setLimit(PHP_INT_MAX);
992  $table_gui->setEditable($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId()));
993  $table_gui->setData($deleteable_questions);
994  $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
995  }
ilRbacSystem $rbac_system
+ Here is the call graph for this function:

◆ download_paragraphObject()

ilObjQuestionPoolGUI::download_paragraphObject ( )

download source code paragraph

Definition at line 706 of file class.ilObjQuestionPoolGUI.php.

References exit, and ilPageObject\sendParagraph().

706  : void
707  {
708  $pg_obj = new ilAssQuestionPage($this->request_data_collector->raw('pg_id'));
709  $pg_obj->sendParagraph($this->request_data_collector->raw('par_id'), $this->request_data_collector->raw('downloadtitle'));
710  exit;
711  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
exit
sendParagraph(string $par_id, string $filename)
+ Here is the call graph for this function:

◆ downloadFileObject()

ilObjQuestionPoolGUI::downloadFileObject ( )

Definition at line 683 of file class.ilObjQuestionPoolGUI.php.

References exit.

683  : void
684  {
685  $file = explode('_', $this->request_data_collector->raw('file_id'));
686  $fileObj = new ilObjFile((int) $file[count($file) - 1], false);
687  $fileObj->sendFile();
688  exit;
689  }
Class ilObjFile.
exit

◆ editQuestionForTestObject()

ilObjQuestionPoolGUI::editQuestionForTestObject ( )

Definition at line 1275 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl().

1275  : void
1276  {
1277  $this->ctrl->redirectByClass(ilAssQuestionPreviewGUI::class, 'show');
1278  }
+ Here is the call graph for this function:

◆ exportObject()

ilObjQuestionPoolGUI::exportObject ( )
protected

Gateway for exports initiated from workspace, as there is a generic forward to {objTypeMainGUI}::export()

Definition at line 678 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl().

678  : void
679  {
680  $this->ctrl->redirectByClass('ilQuestionPoolExportGUI');
681  }
+ Here is the call graph for this function:

◆ exportQuestions()

ilObjQuestionPoolGUI::exportQuestions ( array  $ids)

Definition at line 1020 of file class.ilObjQuestionPoolGUI.php.

References $filename, ilFileDelivery\deliverFileLegacy(), exit, and ILIAS\Repository\lng().

1020  : void
1021  {
1022  if ($ids !== []) {
1023  $qpl_exp = new ilQuestionpoolExport($this->object, 'xml', $ids);
1024  // @PHP8-CR: This seems to be a pointer to an issue with exports. I like to leave this open for now and
1025  // schedule a thorough examination / analysis for later, eventually involved T&A TechSquad
1026  $export_file = $qpl_exp->buildExportFile();
1027  $filename = $export_file;
1028  $filename = preg_replace('/.*\//', '', $filename);
1029  if ($export_file === '') {
1030  $export_file = 'StandIn';
1031  }
1033  exit();
1034  } else {
1035  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_export_select_none'), true);
1036  }
1037  }
static deliverFileLegacy(string $a_file, ?string $a_filename=null, ?string $a_mime=null, ?bool $isInline=false, ?bool $removeAfterDelivery=false, ?bool $a_exit_after=true)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
exit
$filename
Definition: buildRTE.php:78
+ Here is the call graph for this function:

◆ fetchAuthoringQuestionIdParamater()

ilObjQuestionPoolGUI::fetchAuthoringQuestionIdParamater ( )
protected

Definition at line 1111 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\object().

1111  : int
1112  {
1113  $q_id = $this->request_data_collector->getQuestionId();
1114 
1115  if ($q_id === 0 || $this->object->checkQuestionParent($q_id)) {
1116  return $q_id;
1117  }
1118 
1119  throw new ilTestQuestionPoolException('question id does not relate to parent object!');
1120  }
+ Here is the call graph for this function:

◆ fullscreenObject()

ilObjQuestionPoolGUI::fullscreenObject ( )

show fullscreen view

Definition at line 694 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl(), and ilPageObjectGUI\setFileDownloadLink().

694  : void
695  {
696  $page_gui = new ilAssQuestionPageGUI($this->request_data_collector->raw('pg_id'));
697  $page_gui->setFileDownloadLink(
698  $this->ctrl->getLinkTargetByClass(ilObjQuestionPoolGUI::class, 'downloadFile')
699  );
700  $page_gui->showMediaFullscreen();
701  }
Question page GUI class.
setFileDownloadLink(string $a_download_link)
+ Here is the call graph for this function:

◆ getTable()

ilObjQuestionPoolGUI::getTable ( )
protected

Filters should be part of the Table; for now, since they are not fully integrated, they are rendered and applied seperately

Definition at line 1759 of file class.ilObjQuestionPoolGUI.php.

References Vendor\Package\$f, ilObjectGUI\$notes_service, $r, ilObjectGUI\$ui_factory, ilObjectGUI\$ui_renderer, ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ILIAS\Repository\object(), ILIAS\Repository\refinery(), and ILIAS\Repository\user().

Referenced by questionsObject().

1759  : string
1760  {
1763 
1764  $table = new QuestionTable(
1765  $f,
1766  $r,
1767  $this->data_factory,
1768  $this->refinery,
1769  $this->url_builder,
1770  $this->action_parameter_token,
1771  $this->row_id_token,
1772  $this->db,
1773  $this->lng,
1774  $this->component_repository,
1775  $this->rbac_system,
1776  $this->user,
1777  $this->taxonomy->domain(),
1779  $this->object->getId(),
1780  $this->request_data_collector->getRefId()
1781  );
1782 
1787  $filter_action = $this->ctrl->getLinkTarget($this, self::DEFAULT_CMD);
1788  $filter = $table->getFilter($this->ui_service, $filter_action);
1789 
1790  $filter_params = $this->ui_service->filter()->getData($filter);
1791 
1792  if ($filter_params) {
1793  foreach (array_filter($filter_params) as $item => $value) {
1794  switch ($item) {
1795  case 'taxonomies':
1796  foreach ($value as $tax_value) {
1797  if ($tax_value === 'null') {
1798  $table->addTaxonomyFilterNoTaxonomySet(true);
1799  } else {
1800  $tax_nodes = explode('-', $tax_value);
1801  $tax_id = array_shift($tax_nodes);
1802  $table->addTaxonomyFilter(
1803  $tax_id,
1804  $tax_nodes,
1805  $this->object->getId(),
1806  $this->object->getType()
1807  );
1808  }
1809  }
1810  break;
1811  case 'commented':
1812  $table->setCommentFilter((int) $value);
1813  break;
1814  default:
1815  $table->addFieldFilter($item, $value);
1816  }
1817  }
1818  }
1819 
1820  return $r->render([
1821  $filter,
1822  $table->getTable()
1823  ->withRequest($this->request)
1824  ]);
1825  }
UIFactory $ui_factory
ILIAS Notes Service $notes_service
UIRenderer $ui_renderer
$r
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTabs()

ilObjQuestionPoolGUI::getTabs ( )

adds tabs to tab gui object

Parameters
object$tabs_guiilTabsGUI object

Definition at line 1474 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\access(), addSettingsSubTabs(), ilAssQuestionSkillAssignmentsGUI\CMD_SHOW_SKILL_QUEST_ASSIGNS, ILIAS\Repository\ctrl(), ILIAS\Repository\help(), isSkillsTabRequired(), ILIAS\Repository\lng(), and ILIAS\Repository\object().

1474  : void
1475  {
1476  $with_write_access = $this->access->checkAccess('write', '', $this->object->getRefId());
1477  $with_read_access = $this->access->checkAccess('read', '', $this->object->getRefId());
1478 
1479  $this->help->setScreenIdComponent('qpl');
1480 
1481  switch ($this->ctrl->getNextClass()) {
1482  case '':
1483  case strtolower(ilInfoScreenGUI::class):
1484  case strtolower(ilPermissionGUI::class):
1485  case strtolower(ilObjectMetaDataGUI::class):
1486  case strtolower(ilExportGUI::class):
1487  case strtolower(ilQuestionPoolSkillAdministrationGUI::class):
1488  break;
1489 
1490  case strtolower(ilTaxonomySettingsGUI::class):
1491  case strtolower(ilObjQuestionPoolSettingsGeneralGUI::class):
1492  if ($with_write_access) {
1493  $this->addSettingsSubTabs($this->tabs_gui);
1494  }
1495 
1496  break;
1497 
1498  default:
1499  return;
1500  }
1501  // questions
1502  $force_active = false;
1503  $commands = $this->request_data_collector->raw('cmd');
1504  if (is_array($commands)) {
1505  foreach ($commands as $key => $value) {
1506  if (preg_match('/^delete_.*/', $key, $matches) ||
1507  preg_match('/^addSelectGap_.*/', $key, $matches) ||
1508  preg_match('/^addTextGap_.*/', $key, $matches) ||
1509  preg_match('/^deleteImage_.*/', $key, $matches) ||
1510  preg_match('/^upload_.*/', $key, $matches) ||
1511  preg_match('/^addSuggestedSolution_.*/', $key, $matches)
1512  ) {
1513  $force_active = true;
1514  }
1515  }
1516  }
1517 
1518  $force_active = $force_active || $this->request_data_collector->isset('imagemap_x');
1519  if (!$force_active) {
1520  $force_active = strtolower($this->ctrl->getCmdClass()) === strtolower(self::class)
1521  || $this->ctrl->getCmdClass() === '' && $this->ctrl->getCmd() === ''
1522  ? true
1523  : false;
1524  }
1525  if ($with_read_access) {
1526  $this->tabs_gui->addTarget(
1527  'assQuestions',
1528  $this->ctrl->getLinkTargetByClass(
1529  [ilRepositoryGUI::class, self::class],
1530  self::DEFAULT_CMD
1531  ),
1532  [
1533  self::DEFAULT_CMD,
1534  'filter',
1535  'resetFilter',
1536  'createQuestion',
1537  'importQuestions',
1538  'deleteQuestions',
1539  'filterQuestionBrowser',
1540  'view',
1541  'preview',
1542  'editQuestion',
1543  'exec_pg',
1544  'addItem',
1545  'upload',
1546  'save',
1547  'cancel',
1548  'addSuggestedSolution',
1549  'cancelExplorer',
1550  'linkChilds',
1551  'removeSuggestedSolution',
1552  'add',
1553  'addYesNo',
1554  'addTrueFalse',
1555  'createGaps',
1556  'setMediaMode',
1557  'uploadingImage',
1558  'uploadingImagemap',
1559  'addArea',
1560  'deletearea',
1561  'saveShape',
1562  'back',
1563  'addPair',
1564  'uploadingJavaapplet',
1565  'addParameter',
1566  'assessment',
1567  'addGIT',
1568  'addST',
1569  'addPG',
1570  'delete',
1571  'toggleGraphicalAnswers',
1572  'deleteAnswer',
1573  'deleteImage',
1574  'removeJavaapplet'
1575  ],
1576  '',
1577  '',
1578  $force_active
1579  );
1580  }
1581  if ($with_read_access) {
1582  $this->tabs_gui->addTab(
1583  'info_short',
1584  $this->lng->txt('info_short'),
1585  $this->ctrl->getLinkTargetByClass(
1586  [
1587  ilRepositoryGUI::class,
1588  self::class,
1589  ilInfoScreenGUI::class
1590  ]
1591  )
1592  );
1593  }
1594 
1595  if ($with_write_access) {
1596  // properties
1597  $this->tabs_gui->addTarget(
1598  'settings',
1599  $this->ctrl->getLinkTargetByClass(ilObjQuestionPoolSettingsGeneralGUI::class),
1600  [],
1601  [ilObjQuestionPoolSettingsGeneralGUI::class, ilObjTaxonomyGUI::class]
1602  );
1603 
1604  // skill service
1605  if ($this->isSkillsTabRequired()) {
1606  $link = $this->ctrl->getLinkTargetByClass(
1607  [ilQuestionPoolSkillAdministrationGUI::class, ilAssQuestionSkillAssignmentsGUI::class],
1609  );
1610 
1611  $this->tabs_gui->addTarget('qpl_tab_competences', $link, [], []);
1612  }
1613  }
1614 
1615  if ($with_read_access) {
1616  // print view
1617  $this->tabs_gui->addTarget(
1618  'print_view',
1619  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'print'),
1620  ['print'],
1621  '',
1622  ''
1623  );
1624  }
1625 
1626  if ($with_write_access) {
1627  $mdgui = new ilObjectMetaDataGUI($this->object);
1628  $mdtab = $mdgui->getTab();
1629  if ($mdtab) {
1630  $this->tabs_gui->addTarget(
1631  'meta_data',
1632  $mdtab,
1633  '',
1634  'ilmdeditorgui'
1635  );
1636  }
1637  }
1638 
1639  if ($with_write_access) {
1640  $this->tabs_gui->addTarget(
1641  'export',
1642  $this->ctrl->getLinkTargetByClass(ilExportGUI::class, ''),
1643  '',
1644  'ilexportgui'
1645  );
1646  }
1647 
1648  if ($this->access->checkAccess('edit_permission', '', $this->object->getRefId())) {
1649  $this->tabs_gui->addTarget(
1650  'perm_settings',
1651  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class, ilPermissionGUI::class], 'perm'),
1652  ['perm', 'info', 'owner'],
1653  'ilpermissiongui'
1654  );
1655  }
1656  }
Class ilObjectMetaDataGUI.
if(!file_exists('../ilias.ini.php'))
+ Here is the call graph for this function:

◆ importFile()

ilObjQuestionPoolGUI::importFile ( string  $file_to_import,
string  $path_to_uploaded_file_in_temp_dir 
)
protected

Definition at line 1332 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\TestQuestionPool\Import\buildImportDirectoriesFromImportFile(), ILIAS\TestQuestionPool\Import\buildImportQuestionsSelectionForm(), ILIAS\Repository\ctrl(), ilFileUtils\delDir(), exit, ILIAS\TestQuestionPool\Import\getImportTempDirectory(), ILIAS\Repository\lng(), null, and ilSession\set().

1332  : void
1333  {
1334  list($subdir, $importdir, $xmlfile, $qtifile) = $this->buildImportDirectoriesFromImportFile($file_to_import);
1335 
1337  ->withZipOutputPath($this->getImportTempDirectory());
1338 
1339  $unzip = $this->archives->unzip(Streams::ofResource(fopen($file_to_import, 'r')), $options);
1340  $unzip->extract();
1341 
1342  if (!file_exists($qtifile)) {
1343  ilFileUtils::delDir($importdir);
1344  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('cannot_find_xml'), true);
1345  return;
1346  }
1347 
1348  ilSession::set('path_to_import_file', $file_to_import);
1349  ilSession::set('path_to_uploaded_file_in_temp_dir', $path_to_uploaded_file_in_temp_dir);
1350 
1351  $this->ctrl->setParameterByClass(self::class, 'new_type', $this->type);
1352  $form = $this->buildImportQuestionsSelectionForm(
1353  'importVerifiedFile',
1354  $importdir,
1355  $qtifile,
1356  $path_to_uploaded_file_in_temp_dir
1357  );
1358 
1359  if ($form === null) {
1360  return;
1361  }
1362 
1363  $panel = $this->ui_factory->panel()->standard(
1364  $this->lng->txt('import_qpl'),
1365  [
1366  $this->ui_factory->legacy()->content($this->lng->txt('qpl_import_verify_found_questions')),
1367  $form
1368  ]
1369  );
1370  $this->tpl->setContent($this->ui_renderer->render($panel));
1371  $this->tpl->printToStdout();
1372  exit;
1373  }
buildImportQuestionsSelectionForm(string $form_cmd, string $importdir, string $qtifile, ?string $path_to_uploaded_file_in_temp_dir=null)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static delDir(string $a_dir, bool $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
exit
array buildImportDirectoriesFromImportFile(string $file_to_import)
static set(string $a_var, $a_val)
Set a value.
+ Here is the call graph for this function:

◆ importQuestionPoolWithValidManifest()

ilObjQuestionPoolGUI::importQuestionPoolWithValidManifest ( ilObjQuestionPool  $obj,
array  $selected_questions,
string  $file_to_import 
)
private

Definition at line 859 of file class.ilObjQuestionPoolGUI.php.

References ilObject\getId(), ilImport\getMapping(), ilImport\importObject(), and ilSession\set().

Referenced by importVerifiedFileObject(), and importVerifiedQuestionsFileObject().

863  : void {
864 
865  ilSession::set('qpl_import_selected_questions', $selected_questions);
866  $imp = new ilImport($this->request_data_collector->getRefId());
867  $map = $imp->getMapping();
868  $map->addMapping('components/ILIAS/TestQuestionPool', 'qpl', 'new_id', (string) $obj->getId());
869  $imp->importObject($obj, $file_to_import, basename($file_to_import), 'qpl', 'components/ILIAS/TestQuestionPool', true);
870  }
Import class.
importObject(?object $a_new_obj, string $a_tmp_file, string $a_filename, string $a_type, string $a_comp="", bool $a_copy_file=false)
static set(string $a_var, $a_val)
Set a value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ importQuestionsFile()

ilObjQuestionPoolGUI::importQuestionsFile ( string  $path_to_uploaded_file_in_temp_dir)
protected

Definition at line 1280 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\TestQuestionPool\Import\buildImportDirectoriesFromImportFile(), ILIAS\TestQuestionPool\Import\buildImportQuestionsSelectionForm(), ilFileUtils\delDir(), exit, ILIAS\TestQuestionPool\Import\getImportTempDirectory(), ILIAS\Repository\lng(), null, questionsObject(), and ilSession\set().

Referenced by uploadQuestionsImportObject().

1280  : void
1281  {
1282  if (!$this->temp_file_system->hasDir($path_to_uploaded_file_in_temp_dir)
1283  || ($files = $this->temp_file_system->listContents($path_to_uploaded_file_in_temp_dir)) === []) {
1284  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('obj_import_file_error'));
1285  }
1286 
1287  $file_to_import = $this->import_temp_directory . DIRECTORY_SEPARATOR . $files[0]->getPath();
1288  $qtifile = $file_to_import;
1289  $importdir = dirname($file_to_import);
1290 
1291 
1292  if ($this->temp_file_system->getMimeType($files[0]->getPath()) === MimeType::APPLICATION__ZIP) {
1294  ->withZipOutputPath($this->getImportTempDirectory());
1295  $unzip = $this->archives->unzip($this->temp_file_system->readStream($files[0]->getPath()), $options);
1296  $unzip->extract();
1297  list($subdir, $importdir, $xmlfile, $qtifile) = $this->buildImportDirectoriesFromImportFile($file_to_import);
1298  }
1299  if (!file_exists($qtifile)) {
1300  ilFileUtils::delDir($importdir);
1301  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('cannot_find_xml'), true);
1302  $this->questionsObject();
1303  return;
1304  }
1305 
1306  ilSession::set('path_to_import_file', $file_to_import);
1307  ilSession::set('path_to_uploaded_file_in_temp_dir', $path_to_uploaded_file_in_temp_dir);
1308 
1309  $form = $this->buildImportQuestionsSelectionForm(
1310  'importVerifiedQuestionsFile',
1311  $importdir,
1312  $qtifile,
1313  $path_to_uploaded_file_in_temp_dir
1314  );
1315 
1316  if ($form === null) {
1317  return;
1318  }
1319 
1320  $panel = $this->ui_factory->panel()->standard(
1321  $this->lng->txt('import_question'),
1322  [
1323  $this->ui_factory->legacy()->content($this->lng->txt('qpl_import_verify_found_questions')),
1324  $form
1325  ]
1326  );
1327  $this->tpl->setContent($this->ui_renderer->render($panel));
1328  $this->tpl->printToStdout();
1329  exit;
1330  }
buildImportQuestionsSelectionForm(string $form_cmd, string $importdir, string $qtifile, ?string $path_to_uploaded_file_in_temp_dir=null)
questionsObject(?RoundTripModal $import_questions_modal=null)
list questions of question pool
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static delDir(string $a_dir, bool $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
exit
array buildImportDirectoriesFromImportFile(string $file_to_import)
static set(string $a_var, $a_val)
Set a value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ importQuestionsFromQtiFile()

ilObjQuestionPoolGUI::importQuestionsFromQtiFile ( ilObjQuestionPool  $obj,
array  $selected_questions,
string  $qtifile,
string  $importdir,
string  $xmlfile = '' 
)
private

Definition at line 872 of file class.ilObjQuestionPoolGUI.php.

References ilObject\getId(), ilQTIParser\IL_MO_PARSE_QTI, and ilQTIParser\startParsing().

Referenced by importVerifiedFileObject(), and importVerifiedQuestionsFileObject().

878  : void {
879  $qti_parser = new ilQTIParser(
880  $importdir,
881  $qtifile,
883  $obj->getId(),
884  $selected_questions
885  );
886  $qti_parser->startParsing();
887 
888  if ($xmlfile === '') {
889  return;
890  }
891 
892  $cont_parser = new ilQuestionPageParser(
893  $obj,
894  $xmlfile,
895  $importdir
896  );
897  $cont_parser->setQuestionMapping($qti_parser->getImportMapping());
898  $cont_parser->startParsing();
899  }
Legacy Content Object Parser.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ importVerifiedFileObject()

ilObjQuestionPoolGUI::importVerifiedFileObject ( )

Definition at line 713 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\TestQuestionPool\Import\buildImportDirectoriesFromImportFile(), ilObjectGUI\checkPermissionBool(), cleanupAfterImport(), ILIAS\Repository\ctrl(), ilSession\get(), importQuestionPoolWithValidManifest(), importQuestionsFromQtiFile(), ILIAS\Repository\lng(), ILIAS\Repository\object(), redirectAfterMissingWrite(), and ILIAS\TestQuestionPool\Import\retrieveSelectedQuestionsFromImportQuestionsSelectionForm().

713  : void
714  {
715  if ($this->creation_mode
716  && !$this->checkPermissionBool('create', '', $this->request_data_collector->string('new_type'))
717  || !$this->creation_mode
718  && !$this->checkPermissionBool('read', '', $this->object->getType())) {
719  $this->redirectAfterMissingWrite();
720  return;
721  }
722 
723  $file_to_import = ilSession::get('path_to_import_file');
724  list($subdir, $importdir, $xmlfile, $qtifile) = $this->buildImportDirectoriesFromImportFile($file_to_import);
725 
726  $new_obj = new ilObjQuestionPool(0, true);
727  $new_obj->setType($this->request_data_collector->raw('new_type'));
728  $new_obj->setTitle('dummy');
729  $new_obj->setDescription('questionpool import');
730  $new_obj->create(true);
731  $new_obj->createReference();
732  $new_obj->putInTree($this->request_data_collector->getRefId());
733  $new_obj->setPermissions($this->request_data_collector->getRefId());
734 
736  'importVerifiedFile',
737  $importdir,
738  $qtifile,
739  $this->request
740  );
741 
742  if (is_file($importdir . DIRECTORY_SEPARATOR . 'manifest.xml')) {
744  $new_obj,
745  $selected_questions,
746  $file_to_import
747  );
748  } else {
750  $new_obj,
751  $selected_questions,
752  $qtifile,
753  $importdir,
754  $xmlfile
755  );
756 
757  $new_obj->fromXML($xmlfile);
758 
759  $new_obj->update();
760  $new_obj->saveToDb();
761  }
762  $this->cleanupAfterImport($importdir);
763 
764  $this->tpl->setOnScreenMessage('success', $this->lng->txt('object_imported'), true);
765  $this->ctrl->setParameterByClass(self::class, 'ref_id', $new_obj->getRefId());
766  $this->ctrl->redirectByClass(self::class);
767  }
static get(string $a_var)
importQuestionsFromQtiFile(ilObjQuestionPool $obj, array $selected_questions, string $qtifile, string $importdir, string $xmlfile='')
importQuestionPoolWithValidManifest(ilObjQuestionPool $obj, array $selected_questions, string $file_to_import)
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
retrieveSelectedQuestionsFromImportQuestionsSelectionForm(string $form_cmd, string $importdir, string $qtifile, ServerRequestInterface $request)
array buildImportDirectoriesFromImportFile(string $file_to_import)
cleanupAfterImport(string $importdir)
+ Here is the call graph for this function:

◆ importVerifiedQuestionsFileObject()

ilObjQuestionPoolGUI::importVerifiedQuestionsFileObject ( )

Definition at line 769 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\TestQuestionPool\Import\buildImportDirectoriesFromImportFile(), cleanupAfterImport(), ilSession\get(), ilObjectGUI\getObject(), importQuestionPoolWithValidManifest(), importQuestionsFromQtiFile(), ILIAS\Repository\lng(), questionsObject(), and ILIAS\TestQuestionPool\Import\retrieveSelectedQuestionsFromImportQuestionsSelectionForm().

769  : void
770  {
771  $file_to_import = ilSession::get('path_to_import_file');
772 
773  if (mb_substr($file_to_import, -3) === 'xml') {
774  $importdir = dirname($file_to_import);
776  'importVerifiedQuestionsFile',
777  $importdir,
778  $file_to_import,
779  $this->request
780  );
782  $this->getObject(),
783  $selected_questions,
784  $file_to_import,
785  $importdir
786  );
787  } else {
788  list($subdir, $importdir, $xmlfile, $qtifile) = $this->buildImportDirectoriesFromImportFile($file_to_import);
790  'importVerifiedQuestionsFile',
791  $importdir,
792  $qtifile,
793  $this->request
794  );
795  if (is_file($importdir . DIRECTORY_SEPARATOR . 'manifest.xml')) {
797  $this->getObject(),
798  $selected_questions,
799  $file_to_import
800  );
801  } else {
803  $this->getObject(),
804  $selected_questions,
805  $qtifile,
806  $importdir,
807  $xmlfile
808  );
809  }
810  }
811 
812  $this->cleanupAfterImport($importdir);
813 
814  $this->tpl->setOnScreenMessage('success', $this->lng->txt('object_imported'), true);
815  $this->questionsObject();
816  }
static get(string $a_var)
questionsObject(?RoundTripModal $import_questions_modal=null)
list questions of question pool
importQuestionsFromQtiFile(ilObjQuestionPool $obj, array $selected_questions, string $qtifile, string $importdir, string $xmlfile='')
importQuestionPoolWithValidManifest(ilObjQuestionPool $obj, array $selected_questions, string $file_to_import)
retrieveSelectedQuestionsFromImportQuestionsSelectionForm(string $form_cmd, string $importdir, string $qtifile, ServerRequestInterface $request)
array buildImportDirectoriesFromImportFile(string $file_to_import)
cleanupAfterImport(string $importdir)
+ Here is the call graph for this function:

◆ infoScreenForward()

ilObjQuestionPoolGUI::infoScreenForward ( )

Definition at line 1701 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$ctrl, $DIC, $ilErr, $info, ilObjectGUI\$lng, ilObjectGUI\_gotoRepositoryRoot(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ILIAS\Repository\int(), ILIAS\Repository\lng(), ILIAS\Repository\object(), ilCtrl\redirectByClass(), ROOT_FOLDER_ID, ilCtrl\setParameterByClass(), and ilLanguage\txt().

Referenced by questionsObject().

1701  : void
1702  {
1703  if (!$this->access->checkAccess('visible', '', $this->ref_id)) {
1704  $this->error->raiseError($this->lng->txt('msg_no_perm_read'));
1705  }
1706 
1707  $this->tabs_gui->activateTab('info_short');
1708  $info = new ilInfoScreenGUI($this);
1709  $info->enablePrivateNotes();
1710  $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
1711 
1712  $this->ctrl->forwardCommand($info);
1713  }
$info
Definition: entry_point.php:21
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ infoScreenObject()

ilObjQuestionPoolGUI::infoScreenObject ( )

Definition at line 1690 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl().

1690  : void
1691  {
1692  $this->ctrl->redirectByClass(
1693  [
1694  ilRepositoryGUI::class,
1695  self::class,
1696  ilInfoScreenGUI::class
1697  ]
1698  );
1699  }
+ Here is the call graph for this function:

◆ isSkillsTabRequired()

ilObjQuestionPoolGUI::isSkillsTabRequired ( )
private

Definition at line 1658 of file class.ilObjQuestionPoolGUI.php.

References ilObjQuestionPool\isSkillManagementGloballyActivated(), and ILIAS\Repository\object().

Referenced by getTabs().

1658  : bool
1659  {
1660  if (!($this->object instanceof ilObjQuestionPool)) {
1661  return false;
1662  }
1663 
1664  if (!$this->object->isSkillServiceEnabled()) {
1665  return false;
1666  }
1667 
1669  return false;
1670  }
1671 
1672  return true;
1673  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ moveQuestions()

ilObjQuestionPoolGUI::moveQuestions ( array  $ids)

Definition at line 1252 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$id, and ILIAS\Repository\lng().

1252  : void
1253  {
1254  if ($ids) {
1255  foreach ($ids as $id) {
1256  $this->object->moveToClipboard($id);
1257  }
1258  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_move_insert_clipboard'), true);
1259  } else {
1260  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_move_select_none'), true);
1261  }
1262  }
+ Here is the call graph for this function:

◆ pasteObject()

ilObjQuestionPoolGUI::pasteObject ( )

Definition at line 1226 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl(), ilSession\get(), ILIAS\Repository\lng(), null, and ILIAS\Repository\object().

1226  : void
1227  {
1228  if (ilSession::get('qpl_clipboard') != null) {
1229  if ($this->object->pasteFromClipboard()) {
1230  $this->tpl->setOnScreenMessage('success', $this->lng->txt('qpl_paste_success'), true);
1231  } else {
1232  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('qpl_paste_error'), true);
1233  }
1234  } else {
1235  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_paste_no_objects'), true);
1236  }
1237  $this->ctrl->redirect($this, self::DEFAULT_CMD);
1238  }
static get(string $a_var)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

◆ printObject()

ilObjQuestionPoolGUI::printObject ( )

Definition at line 1190 of file class.ilObjQuestionPoolGUI.php.

References Vendor\Package\$d, ilObjectGUI\$data, ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

1190  : void
1191  {
1192  $this->tabs_gui->activateTab('print_view');
1193  $this->ctrl->setParameter($this, 'output', 'overview');
1194  $output_link = $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'print');
1195  $this->ctrl->setParameter($this, 'output', 'detailed_output_solutions');
1196  $output_link_detailed = $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'print');
1197  $this->ctrl->setParameter($this, 'output', 'detailed_output_printview');
1198  $output_link_printview = $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'print');
1199 
1200  $mode = $this->ui_factory->dropdown()->standard([
1201  $this->ui_factory->button()->shy($this->lng->txt('overview'), $output_link),
1202  $this->ui_factory->button()->shy($this->lng->txt('detailed_output_solutions'), $output_link_detailed),
1203  $this->ui_factory->button()->shy($this->lng->txt('detailed_output_printview'), $output_link_printview)
1204  ])->withLabel($this->lng->txt('output_mode'));
1205 
1206  $output = $this->request_data_collector->raw('output') ?? '';
1207 
1208  $table_gui = new ilQuestionPoolPrintViewTableGUI($this, 'print', $output);
1209  $data = $this->object->getPrintviewQuestions();
1210  $totalPoints = 0;
1211  foreach ($data as $d) {
1212  $totalPoints += $d['points'];
1213  }
1214  $table_gui->setTotalPoints($totalPoints);
1215  $table_gui->initColumns();
1216  $table_gui->setData($data);
1217  $this->tpl->setContent($this->ui_renderer->render($mode) . $table_gui->getHTML());
1218  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:

◆ questionsObject()

ilObjQuestionPoolGUI::questionsObject ( ?RoundTripModal  $import_questions_modal = null)

list questions of question pool

Definition at line 1056 of file class.ilObjQuestionPoolGUI.php.

References $out, ILIAS\Repository\access(), buildImportQuestionsModal(), ILIAS\Repository\ctrl(), ilSession\get(), getTable(), infoScreenForward(), ILIAS\Repository\lng(), null, ILIAS\Repository\object(), and ILIAS\Repository\toolbar().

Referenced by importQuestionsFile(), importVerifiedQuestionsFileObject(), and uploadQuestionsImportObject().

1056  : void
1057  {
1058  if (!$this->access->checkAccess("read", "", $this->request_data_collector->getRefId())) {
1059  $this->infoScreenForward();
1060  return;
1061  }
1062 
1063  $this->object->purgeQuestions();
1064  $qsa_import_fails = new ilAssQuestionSkillAssignmentImportFails($this->object->getId());
1065  if ($qsa_import_fails->failedImportsRegistered()) {
1066  $button = $this->ui_factory->button()->standard(
1067  $this->lng->txt('ass_skl_import_fails_remove_btn'),
1068  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'renoveImportFails')
1069  );
1070  $this->tpl->setOnScreenMessage(
1071  'failure',
1072  $qsa_import_fails->getFailedImportsMessage($this->lng) . '<br />' . $this->ui_renderer->render(
1073  $button
1074  )
1075  );
1076  }
1077 
1078  $out = [];
1079  if ($this->rbac_system->checkAccess('write', $this->request_data_collector->getRefId())) {
1080  $btn = $this->ui_factory->button()->primary(
1081  $this->lng->txt('ass_create_question'),
1082  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'createQuestionForm')
1083  );
1084  $this->toolbar->addComponent($btn);
1085 
1086  if ($import_questions_modal === null) {
1087  $import_questions_modal = $this->buildImportQuestionsModal();
1088  }
1089 
1090  $btn_import = $this->ui_factory->button()->standard(
1091  $this->lng->txt('import'),
1092  $import_questions_modal->getShowSignal()
1093  );
1094  $this->toolbar->addComponent($btn_import);
1095  $out[] = $this->ui_renderer->render($import_questions_modal);
1096 
1097  if (ilSession::get('qpl_clipboard') != null && count(ilSession::get('qpl_clipboard'))) {
1098  $btn_paste = $this->ui_factory->button()->standard(
1099  $this->lng->txt('paste'),
1100  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'paste')
1101  );
1102  $this->toolbar->addComponent($btn_paste);
1103  }
1104  }
1105 
1106  $this->tpl->setPermanentLink($this->object->getType(), $this->object->getRefId());
1107  $out[] = $this->getTable();
1108  $this->tpl->setContent(implode('', $out));
1109  }
static get(string $a_var)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$out
Definition: buildRTE.php:24
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ redirectAfterMissingWrite()

ilObjQuestionPoolGUI::redirectAfterMissingWrite ( )
protected

Definition at line 666 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by importVerifiedFileObject().

667  {
668  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('no_permission'), true);
669  $target_class = get_class($this->object) . 'GUI';
670  $this->ctrl->setParameterByClass($target_class, 'ref_id', $this->ref_id);
671  $this->ctrl->redirectByClass($target_class);
672  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renoveImportFailsObject()

ilObjQuestionPoolGUI::renoveImportFailsObject ( )
protected

Definition at line 1039 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl(), ilAssQuestionSkillAssignmentImportFails\deleteRegisteredImportFails(), and ILIAS\Repository\object().

1039  : void
1040  {
1041  $qsaImportFails = new ilAssQuestionSkillAssignmentImportFails($this->object->getId());
1042  $qsaImportFails->deleteRegisteredImportFails();
1043 
1044  $this->ctrl->redirectByClass(
1045  [
1046  ilRepositoryGUI::class,
1047  self::class,
1048  ilInfoScreenGUI::class
1049  ]
1050  );
1051  }
+ Here is the call graph for this function:

◆ setTitleAndDescription()

ilObjQuestionPoolGUI::setTitleAndDescription ( )

called by prepare output

Definition at line 1422 of file class.ilObjQuestionPoolGUI.php.

References ilObject\_getIcon(), assQuestionGUI\_getQuestionGUI(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ILIAS\Repository\object(), and ILIAS\Repository\refinery().

1422  : void
1423  {
1424  parent::setTitleAndDescription();
1425 
1426  if (!is_array($this->request_data_collector->raw('q_id')) && $this->request_data_collector->raw('q_id') > 0 && $this->request_data_collector->raw(
1427  'cmd'
1428  ) !== self::DEFAULT_CMD) {
1429  $question_gui = assQuestionGUI::_getQuestionGUI('', $this->request_data_collector->getQuestionId());
1430  if ($question_gui->getObject() instanceof assQuestion) {
1431  $question = $question_gui->getObject();
1432  $question->setObjId($this->object->getId());
1433  $question_gui->setObject($question);
1434  $title = $this->object->getTitle() . ': ' . $question_gui->getObject()->getTitleForHTMLOutput();
1435  if (!$title) {
1436  $title = $this->lng->txt('new') . ': ' . $this->questionrepository->getForQuestionId(
1437  $question_gui->getObject()->getId()
1438  )->getTypeName($this->lng);
1439  }
1440  $this->tpl->setTitle(
1441  $this->refinery->encode()->htmlSpecialCharsAsEntities()->transform(
1442  $title,
1443  )
1444  );
1445  $this->tpl->setDescription(
1446  $question_gui->getObject()->getDescriptionForHTMLOutput()
1447  );
1448  $this->tpl->setTitleIcon(ilObject2::_getIcon($this->object->getId(), 'big', $this->object->getType()));
1449  } else {
1450  // Workaround for context issues: If no object was found, redirect without q_id parameter
1451  $this->ctrl->setParameter($this, 'q_id', '');
1452  $this->ctrl->redirect($this);
1453  }
1454  } else {
1455  $this->tpl->setTitle(
1456  $this->refinery->encode()->htmlSpecialCharsAsEntities()->transform(
1457  $this->object->getTitle()
1458  )
1459  );
1460  $this->tpl->setDescription(
1461  $this->refinery->encode()->htmlSpecialCharsAsEntities()->transform(
1462  $this->object->getLongDescription()
1463  )
1464  );
1465  $this->tpl->setTitleIcon(ilObject2::_getIcon($this->object->getId(), 'big', $this->object->getType()));
1466  }
1467  }
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static _getQuestionGUI(string $question_type='', int $question_id=-1)
Creates a question gui representation and returns the alias to the question gui.
+ Here is the call graph for this function:

◆ updateObject()

ilObjQuestionPoolGUI::updateObject ( )

Definition at line 1220 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\lng().

1220  : void
1221  {
1222  $this->object->update();
1223  $this->tpl->setOnScreenMessage('success', $this->lng->txt('msg_obj_modified'), true);
1224  }
+ Here is the call graph for this function:

◆ uploadQuestionsImportObject()

ilObjQuestionPoolGUI::uploadQuestionsImportObject ( )

Definition at line 818 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$data, buildImportQuestionsModal(), importQuestionsFile(), null, and questionsObject().

818  : void
819  {
820  $import_questions_modal = $this->buildImportQuestionsModal()->withRequest($this->request);
821  $data = $import_questions_modal->getData();
822  if ($data === null) {
823  $this->questionsObject(
824  $import_questions_modal->withOnLoad(
825  $import_questions_modal->getShowSignal()
826  )
827  );
828  return;
829  }
830  $path_to_imported_file_in_temp_dir = $data['import_file'][0];
831  $this->importQuestionsFile($path_to_imported_file_in_temp_dir);
832  }
importQuestionsFile(string $path_to_uploaded_file_in_temp_dir)
questionsObject(?RoundTripModal $import_questions_modal=null)
list questions of question pool
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

Field Documentation

◆ $action_parameter_token

URLBuilderToken ilObjQuestionPoolGUI::$action_parameter_token
protected

Definition at line 84 of file class.ilObjQuestionPoolGUI.php.

◆ $archives

Archives ilObjQuestionPoolGUI::$archives
private

Definition at line 86 of file class.ilObjQuestionPoolGUI.php.

◆ $component_factory

ilComponentFactory ilObjQuestionPoolGUI::$component_factory
protected

Definition at line 78 of file class.ilObjQuestionPoolGUI.php.

◆ $component_repository

ilComponentRepository ilObjQuestionPoolGUI::$component_repository
protected

Definition at line 79 of file class.ilObjQuestionPoolGUI.php.

◆ $content_style

ContentStyle ilObjQuestionPoolGUI::$content_style
private

Definition at line 87 of file class.ilObjQuestionPoolGUI.php.

◆ $data_factory

DataFactory ilObjQuestionPoolGUI::$data_factory
protected

Definition at line 82 of file class.ilObjQuestionPoolGUI.php.

◆ $db

ilDBInterface ilObjQuestionPoolGUI::$db
protected

Definition at line 74 of file class.ilObjQuestionPoolGUI.php.

◆ $global_screen

GlobalScreen ilObjQuestionPoolGUI::$global_screen
protected

Definition at line 77 of file class.ilObjQuestionPoolGUI.php.

◆ $global_test_settings

GlobalTestSettings ilObjQuestionPoolGUI::$global_test_settings
protected

Definition at line 91 of file class.ilObjQuestionPoolGUI.php.

◆ $help

ilHelpGUI ilObjQuestionPoolGUI::$help
protected

Definition at line 76 of file class.ilObjQuestionPoolGUI.php.

◆ $log

ilComponentLogger ilObjQuestionPoolGUI::$log
protected

Definition at line 75 of file class.ilObjQuestionPoolGUI.php.

◆ $navigation_history

ilNavigationHistory ilObjQuestionPoolGUI::$navigation_history
protected

Definition at line 80 of file class.ilObjQuestionPoolGUI.php.

◆ $questionrepository

GeneralQuestionPropertiesRepository ilObjQuestionPoolGUI::$questionrepository
protected

Definition at line 90 of file class.ilObjQuestionPoolGUI.php.

◆ $request_data_collector

RequestDataCollector ilObjQuestionPoolGUI::$request_data_collector
protected

Definition at line 89 of file class.ilObjQuestionPoolGUI.php.

◆ $row_id_token

URLBuilderToken ilObjQuestionPoolGUI::$row_id_token
protected

Definition at line 85 of file class.ilObjQuestionPoolGUI.php.

◆ $taxonomy

Service ilObjQuestionPoolGUI::$taxonomy
protected

Definition at line 73 of file class.ilObjQuestionPoolGUI.php.

◆ $ui_service

ilUIService ilObjQuestionPoolGUI::$ui_service
protected

Definition at line 81 of file class.ilObjQuestionPoolGUI.php.

◆ $url_builder

URLBuilder ilObjQuestionPoolGUI::$url_builder
protected

Definition at line 83 of file class.ilObjQuestionPoolGUI.php.

◆ DEFAULT_CMD

const ilObjQuestionPoolGUI::DEFAULT_CMD = 'questions'

◆ SUPPORTED_IMPORT_MIME_TYPES

const ilObjQuestionPoolGUI::SUPPORTED_IMPORT_MIME_TYPES = [MimeType::APPLICATION__ZIP, MimeType::TEXT__XML]

The documentation for this class was generated from the following file: