ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
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
 
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
 
ilObjectCustomIconFactory $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

HTTPServices $http
 
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 1417 of file class.ilObjQuestionPoolGUI.php.

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

1417  : void
1418  {
1419  $ilLocator = $this->locator;
1420 
1421  switch ($this->ctrl->getCmd()) {
1422  case 'create':
1423  case 'importFile':
1424  case 'cancel':
1425  break;
1426  default:
1427  $this->ctrl->clearParameterByClass(self::class, 'q_id');
1428  $ilLocator->addItem(
1429  $this->object->getTitle(),
1430  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], ''),
1431  '',
1432  $this->request_data_collector->getRefId()
1433  );
1434  $this->ctrl->setParameter($this, 'q_id', $this->request_data_collector->getQuestionId());
1435  break;
1436  }
1437 
1438  if (!is_array($this->request_data_collector->raw('q_id')) && $this->request_data_collector->raw('q_id') > 0 && $this->request_data_collector->raw(
1439  'cmd'
1440  ) !== self::DEFAULT_CMD) {
1441  $question_gui = assQuestionGUI::_getQuestionGUI('', $this->request_data_collector->getQuestionId());
1442  if ($question_gui !== null && $question_gui->getObject() instanceof assQuestion) {
1443  $question = $question_gui->getObject();
1444  $question->setObjId($this->object->getId());
1445  $question_gui->setObject($question);
1446  $title = $question_gui->getObject()->getTitleForHTMLOutput();
1447  if (!$title) {
1448  $title = $this->lng->txt('new') . ': ' . $this->questionrepository->getForQuestionId(
1449  $question_gui->getObject()->getId()
1450  )->getTypeName($this->lng);
1451  }
1452  $ilLocator->addItem($title, $this->ctrl->getLinkTargetByClass(get_class($question_gui), 'editQuestion'));
1453  } else {
1454  // Workaround for context issues: If no object was found, redirect without q_id parameter
1455  $this->ctrl->setParameter($this, 'q_id', '');
1456  $this->ctrl->redirect($this);
1457  }
1458  }
1459  }
static _getQuestionGUI(string $question_type='', int $question_id=-1)
Creates a question gui representation and returns the alias to the question gui.
ilLocatorGUI $locator
+ Here is the call graph for this function:

◆ addSettingsSubTabs()

ilObjQuestionPoolGUI::addSettingsSubTabs ( ilTabsGUI  $tabs)
private

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

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

Referenced by getTabs().

1717  : void
1718  {
1719  $tabs->addSubTab(
1721  $this->lng->txt('qpl_settings_subtab_general'),
1722  $this->ctrl->getLinkTargetByClass(ilObjQuestionPoolSettingsGeneralGUI::class),
1723  );
1724 
1725  $tabs->addSubTab(
1726  'tax_settings',
1727  $this->lng->txt('qpl_settings_subtab_taxonomies'),
1728  $this->ctrl->getLinkTargetByClass(ilTaxonomySettingsGUI::class, ''),
1729  );
1730  }
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 975 of file class.ilObjQuestionPoolGUI.php.

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

975  : void
976  {
977  // always send a message
978  $this->tpl->setOnScreenMessage('success', $this->lng->txt('object_added'), true);
979 
981  'ilias.php?ref_id=' . $new_object->getRefId() .
982  '&baseClass=ilObjQuestionPoolGUI'
983  );
984  }
static redirect(string $a_script)
+ Here is the call graph for this function:

◆ buildImportQuestionsModal()

ilObjQuestionPoolGUI::buildImportQuestionsModal ( )
private

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

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

Referenced by questionsObject(), and uploadQuestionsImportObject().

877  {
878  $constraint = $this->refinery->custom()->constraint(
879  function ($vs): bool {
880  if ($vs === []) {
881  return false;
882  }
883  return true;
884  },
885  $this->lng->txt('msg_no_files_selected')
886  );
887 
888  $file_upload_input = $this->ui_factory->input()->field()
889  ->file(new \QuestionPoolImportUploadHandlerGUI(), $this->lng->txt('import_file'))
890  ->withAcceptedMimeTypes(self::SUPPORTED_IMPORT_MIME_TYPES)
891  ->withMaxFiles(1)
892  ->withAdditionalTransformation($constraint);
893  return $this->ui_factory->modal()->roundtrip(
894  $this->lng->txt('import'),
895  [],
896  ['import_file' => $file_upload_input],
897  $this->ctrl->getFormActionByClass(self::class, 'uploadQuestionsImport')
898  )->withSubmitLabel($this->lng->txt('import'));
899  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildInputEditingType()

ilObjQuestionPoolGUI::buildInputEditingType ( )
private

Definition at line 1211 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().

1211  : Input
1212  {
1213  if (!$this->global_test_settings->isPageEditorEnabled()) {
1214  return $this->ui_factory->input()->field()->hidden()->withValue(
1216  );
1217  }
1218 
1219  return $this->ui_factory->input()->field()->radio($this->lng->txt('tst_add_quest_cont_edit_mode'))
1220  ->withOption(
1222  $this->lng->txt('tst_add_quest_cont_edit_mode_IPE'),
1223  $this->lng->txt('tst_add_quest_cont_edit_mode_IPE_info')
1224  )->withOption(
1226  $this->lng->txt('tst_add_quest_cont_edit_mode_RTE'),
1227  $this->lng->txt('tst_add_quest_cont_edit_mode_RTE_info')
1228  )
1230  }
const ADDITIONAL_CONTENT_EDITING_MODE_IPE
withValue($value)
Get an input like this with another value displayed on the client side.
Definition: Group.php:59
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 1197 of file class.ilObjQuestionPoolGUI.php.

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

Referenced by buildQuestionCreationForm().

1197  : Select
1198  {
1199  $question_types = (new ilObjQuestionPool())->getQuestionTypes(false, true, false);
1200  $options = [];
1201  foreach ($question_types as $label => $data) {
1202  $options[$data['question_type_id']] = $label;
1203  }
1204 
1205  return $this->ui_factory->input()->field()->select(
1206  $this->lng->txt('question_type'),
1207  $options
1208  )->withRequired(true);
1209  }
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 1180 of file class.ilObjQuestionPoolGUI.php.

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

Referenced by cleanupAfterImport().

1180  : Form
1181  {
1182  $inputs['question_type'] = $this->buildInputQuestionType();
1183  $inputs['editing_type'] = $this->buildInputEditingType();
1184 
1185  $section = [
1186  $this->ui_factory->input()->field()->section($inputs, $this->lng->txt('ass_create_question'))
1187  ];
1188 
1189  $form = $this->ui_factory->input()->container()->form()->standard(
1190  $this->ctrl->getFormAction($this, 'createQuestion'),
1191  $section
1192  )->withSubmitLabel($this->lng->txt('create'));
1193 
1194  return $form;
1195  }
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 1057 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl().

1057  : void
1058  {
1059  $this->ctrl->redirect($this, self::DEFAULT_CMD);
1060  }
+ Here is the call graph for this function:

◆ cleanupAfterImport()

ilObjQuestionPoolGUI::cleanupAfterImport ( string  $importdir)
private

Definition at line 943 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(), and ILIAS\Repository\object().

Referenced by importVerifiedFileObject(), and importVerifiedQuestionsFileObject().

943  : void
944  {
945  ilFileUtils::delDir($importdir);
946  $this->deleteUploadedImportFile(ilSession::get('path_to_uploaded_file_in_temp_dir'));
947  ilSession::clear('path_to_import_file');
948  ilSession::clear('path_to_uploaded_file_in_temp_dir');
949  }
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 986 of file class.ilObjQuestionPoolGUI.php.

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

986  : void
987  {
988  $rbacsystem = $this->rbac_system;
989 
990  $questionIdsToDelete = array_filter(array_map('intval', $ids));
991  if (0 === count($questionIdsToDelete)) {
992  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_delete_select_none'), true);
993  $this->ctrl->redirect($this, self::DEFAULT_CMD);
994  }
995 
996  $this->tpl->setOnScreenMessage('question', $this->lng->txt('qpl_confirm_delete_questions'));
997  $deleteable_questions = $this->object->getDeleteableQuestionDetails($questionIdsToDelete);
998  $table_gui = new ilQuestionBrowserTableGUI($this, self::DEFAULT_CMD, (($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId()) ? true : false)), true);
999  $table_gui->setShowRowsSelector(false);
1000  $table_gui->setLimit(PHP_INT_MAX);
1001  $table_gui->setEditable($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId()));
1002  $table_gui->setData($deleteable_questions);
1003  $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
1004  }
ilRbacSystem $rbac_system
+ Here is the call graph for this function:

◆ confirmDeleteQuestionsObject()

ilObjQuestionPoolGUI::confirmDeleteQuestionsObject ( )

delete questions after confirmation

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

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

1042  : void
1043  {
1044  $qst_ids = $this->request_data_collector->intArray('q_id');
1045  foreach ($qst_ids as $value) {
1046  $this->object->deleteQuestion((int) $value);
1047  $this->object->cleanupClipboard((int) $value);
1048  }
1049  if ($qst_ids !== []) {
1050  $this->tpl->setOnScreenMessage('success', $this->lng->txt('qpl_questions_deleted'), true);
1051  }
1052 
1053  $this->ctrl->setParameter($this, 'q_id', '');
1054  $this->ctrl->redirect($this, self::DEFAULT_CMD);
1055  }
+ Here is the call graph for this function:

◆ copyQuestions()

ilObjQuestionPoolGUI::copyQuestions ( array  $ids)

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

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

1282  : void
1283  {
1284  if ($ids) {
1285  foreach ($ids as $id) {
1286  $this->object->copyToClipboard($id);
1287  }
1288  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_copy_insert_clipboard'), true);
1289  } else {
1290  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_copy_select_none'), true);
1291  }
1292  }
+ Here is the call graph for this function:

◆ createExportExcel()

ilObjQuestionPoolGUI::createExportExcel ( )

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

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

1306  : void
1307  {
1308  $rbacsystem = $this->rbac_system;
1309  if ($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId())) {
1310  $question_ids = &$this->object->getAllQuestionIds();
1311  $qpl_exp = new ilQuestionpoolExport($this->object, 'xlsx', $question_ids);
1312  $qpl_exp->buildExportFile();
1313  $this->ctrl->redirectByClass('ilquestionpoolexportgui', '');
1314  }
1315  }
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 1164 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\help().

Referenced by cleanupAfterImport().

1164  : void
1165  {
1166  $this->help->setScreenId('assQuestions');
1167  if ($this->global_test_settings->isPageEditorEnabled()) {
1168  $this->help->setSubScreenId('createQuestion_editMode');
1169  } else {
1170  $this->help->setSubScreenId('createQuestion');
1171  }
1172 
1173  $this->tpl->setContent(
1174  $this->ui_renderer->render(
1175  $form ?? $this->buildQuestionCreationForm()
1176  )
1177  );
1178  }
+ 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 1009 of file class.ilObjQuestionPoolGUI.php.

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

1009  : void
1010  {
1011  $rbacsystem = $this->rbac_system;
1012 
1013  $questionIdsToDelete = $this->request_data_collector->isset('q_id') ? (array) $this->request_data_collector->raw('q_id') : [];
1014  if ($questionIdsToDelete === [] && $this->request_data_collector->isset('q_id')) {
1015  $questionIdsToDelete = [$this->request_data_collector->getQuestionId()];
1016  }
1017 
1018  $questionIdsToDelete = array_filter(array_map('intval', $questionIdsToDelete));
1019  if ($questionIdsToDelete === []) {
1020  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_delete_select_none'), true);
1021  $this->ctrl->redirect($this, self::DEFAULT_CMD);
1022  }
1023 
1024  $this->tpl->setOnScreenMessage('question', $this->lng->txt('qpl_confirm_delete_questions'));
1025  $deleteable_questions = &$this->object->getDeleteableQuestionDetails($questionIdsToDelete);
1026  $table_gui = new ilQuestionBrowserTableGUI(
1027  $this,
1028  self::DEFAULT_CMD,
1029  (($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId()) ? true : false)),
1030  true
1031  );
1032  $table_gui->setShowRowsSelector(false);
1033  $table_gui->setLimit(PHP_INT_MAX);
1034  $table_gui->setEditable($rbacsystem->checkAccess('write', $this->request_data_collector->getRefId()));
1035  $table_gui->setData($deleteable_questions);
1036  $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
1037  }
ilRbacSystem $rbac_system
+ Here is the call graph for this function:

◆ download_paragraphObject()

ilObjQuestionPoolGUI::download_paragraphObject ( )

download source code paragraph

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

References exit, and ilPageObject\sendParagraph().

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

◆ downloadFileObject()

ilObjQuestionPoolGUI::downloadFileObject ( )

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

References exit.

728  : void
729  {
730  $file = explode('_', $this->request_data_collector->raw('file_id'));
731  $fileObj = new ilObjFile((int) $file[count($file) - 1], false);
732  $fileObj->sendFile();
733  exit;
734  }
Class ilObjFile.

◆ editQuestionForTestObject()

ilObjQuestionPoolGUI::editQuestionForTestObject ( )

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

References ILIAS\Repository\ctrl().

1317  : void
1318  {
1319  $this->ctrl->redirectByClass(ilAssQuestionPreviewGUI::class, 'show');
1320  }
+ 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 723 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\ctrl().

723  : void
724  {
725  $this->ctrl->redirectByClass('ilQuestionPoolExportGUI');
726  }
+ Here is the call graph for this function:

◆ exportQuestions()

ilObjQuestionPoolGUI::exportQuestions ( array  $ids)

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

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

1062  : void
1063  {
1064  if ($ids !== []) {
1065  $qpl_exp = new ilQuestionpoolExport($this->object, 'xml', $ids);
1066  // @PHP8-CR: This seems to be a pointer to an issue with exports. I like to leave this open for now and
1067  // schedule a thorough examination / analysis for later, eventually involved T&A TechSquad
1068  $export_file = $qpl_exp->buildExportFile();
1069  $filename = $export_file;
1070  $filename = preg_replace('/.*\//', '', $filename);
1071  if ($export_file === '') {
1072  $export_file = 'StandIn';
1073  }
1075  exit();
1076  } else {
1077  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_export_select_none'), true);
1078  }
1079  }
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...
$filename
Definition: buildRTE.php:78
+ Here is the call graph for this function:

◆ fetchAuthoringQuestionIdParamater()

ilObjQuestionPoolGUI::fetchAuthoringQuestionIdParamater ( )
protected

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

References ILIAS\Repository\object().

1153  : int
1154  {
1155  $q_id = $this->request_data_collector->getQuestionId();
1156 
1157  if ($q_id === 0 || $this->object->checkQuestionParent($q_id)) {
1158  return $q_id;
1159  }
1160 
1161  throw new ilTestQuestionPoolException('question id does not relate to parent object!');
1162  }
+ Here is the call graph for this function:

◆ fullscreenObject()

ilObjQuestionPoolGUI::fullscreenObject ( )

show fullscreen view

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

References ilPageObjectGUI\showMediaFullscreen().

739  : void
740  {
741  $page_gui = new ilAssQuestionPageGUI($this->request_data_collector->raw('pg_id'));
742  $page_gui->showMediaFullscreen();
743  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
showMediaFullscreen(int $a_style_id=0)
show fullscreen view of media object
+ 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 1801 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().

1801  : string
1802  {
1805 
1806  $table = new QuestionTable(
1807  $f,
1808  $r,
1809  $this->data_factory,
1810  $this->refinery,
1811  $this->url_builder,
1812  $this->action_parameter_token,
1813  $this->row_id_token,
1814  $this->db,
1815  $this->lng,
1816  $this->component_repository,
1817  $this->rbac_system,
1818  $this->user,
1819  $this->taxonomy->domain(),
1821  $this->object->getId(),
1822  $this->request_data_collector->getRefId()
1823  );
1824 
1829  $filter_action = $this->ctrl->getLinkTarget($this, self::DEFAULT_CMD);
1830  $filter = $table->getFilter($this->ui_service, $filter_action);
1831 
1832  $filter_params = $this->ui_service->filter()->getData($filter);
1833 
1834  if ($filter_params) {
1835  foreach (array_filter($filter_params) as $item => $value) {
1836  switch ($item) {
1837  case 'taxonomies':
1838  foreach ($value as $tax_value) {
1839  if ($tax_value === 'null') {
1840  $table->addTaxonomyFilterNoTaxonomySet(true);
1841  } else {
1842  $tax_nodes = explode('-', $tax_value);
1843  $tax_id = array_shift($tax_nodes);
1844  $table->addTaxonomyFilter(
1845  $tax_id,
1846  $tax_nodes,
1847  $this->object->getId(),
1848  $this->object->getType()
1849  );
1850  }
1851  }
1852  break;
1853  case 'commented':
1854  $table->setCommentFilter((int) $value);
1855  break;
1856  default:
1857  $table->addFieldFilter($item, $value);
1858  }
1859  }
1860  }
1861 
1862  return $r->render([
1863  $filter,
1864  $table->getTable()
1865  ->withRequest($this->request)
1866  ]);
1867  }
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 1516 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().

1516  : void
1517  {
1518  $with_write_access = $this->access->checkAccess('write', '', $this->object->getRefId());
1519  $with_read_access = $this->access->checkAccess('read', '', $this->object->getRefId());
1520 
1521  $this->help->setScreenIdComponent('qpl');
1522 
1523  switch ($this->ctrl->getNextClass()) {
1524  case '':
1525  case strtolower(ilInfoScreenGUI::class):
1526  case strtolower(ilPermissionGUI::class):
1527  case strtolower(ilObjectMetaDataGUI::class):
1528  case strtolower(ilExportGUI::class):
1529  case strtolower(ilQuestionPoolSkillAdministrationGUI::class):
1530  break;
1531 
1532  case strtolower(ilTaxonomySettingsGUI::class):
1533  case strtolower(ilObjQuestionPoolSettingsGeneralGUI::class):
1534  if ($with_write_access) {
1535  $this->addSettingsSubTabs($this->tabs_gui);
1536  }
1537 
1538  break;
1539 
1540  default:
1541  return;
1542  }
1543  // questions
1544  $force_active = false;
1545  $commands = $this->request_data_collector->raw('cmd');
1546  if (is_array($commands)) {
1547  foreach ($commands as $key => $value) {
1548  if (preg_match('/^delete_.*/', $key, $matches) ||
1549  preg_match('/^addSelectGap_.*/', $key, $matches) ||
1550  preg_match('/^addTextGap_.*/', $key, $matches) ||
1551  preg_match('/^deleteImage_.*/', $key, $matches) ||
1552  preg_match('/^upload_.*/', $key, $matches) ||
1553  preg_match('/^addSuggestedSolution_.*/', $key, $matches)
1554  ) {
1555  $force_active = true;
1556  }
1557  }
1558  }
1559 
1560  $force_active = $force_active || $this->request_data_collector->isset('imagemap_x');
1561  if (!$force_active) {
1562  $force_active = strtolower($this->ctrl->getCmdClass()) === strtolower(self::class)
1563  || $this->ctrl->getCmdClass() === '' && $this->ctrl->getCmd() === ''
1564  ? true
1565  : false;
1566  }
1567  if ($with_read_access) {
1568  $this->tabs_gui->addTarget(
1569  'assQuestions',
1570  $this->ctrl->getLinkTargetByClass(
1571  [ilRepositoryGUI::class, self::class],
1572  self::DEFAULT_CMD
1573  ),
1574  [
1575  self::DEFAULT_CMD,
1576  'filter',
1577  'resetFilter',
1578  'createQuestion',
1579  'importQuestions',
1580  'deleteQuestions',
1581  'filterQuestionBrowser',
1582  'view',
1583  'preview',
1584  'editQuestion',
1585  'exec_pg',
1586  'addItem',
1587  'upload',
1588  'save',
1589  'cancel',
1590  'addSuggestedSolution',
1591  'cancelExplorer',
1592  'linkChilds',
1593  'removeSuggestedSolution',
1594  'add',
1595  'addYesNo',
1596  'addTrueFalse',
1597  'createGaps',
1598  'setMediaMode',
1599  'uploadingImage',
1600  'uploadingImagemap',
1601  'addArea',
1602  'deletearea',
1603  'saveShape',
1604  'back',
1605  'addPair',
1606  'uploadingJavaapplet',
1607  'addParameter',
1608  'assessment',
1609  'addGIT',
1610  'addST',
1611  'addPG',
1612  'delete',
1613  'toggleGraphicalAnswers',
1614  'deleteAnswer',
1615  'deleteImage',
1616  'removeJavaapplet'
1617  ],
1618  '',
1619  '',
1620  $force_active
1621  );
1622  }
1623  if ($with_read_access) {
1624  $this->tabs_gui->addTab(
1625  'info_short',
1626  $this->lng->txt('info_short'),
1627  $this->ctrl->getLinkTargetByClass(
1628  [
1629  ilRepositoryGUI::class,
1630  self::class,
1631  ilInfoScreenGUI::class
1632  ]
1633  )
1634  );
1635  }
1636 
1637  if ($with_write_access) {
1638  // properties
1639  $this->tabs_gui->addTarget(
1640  'settings',
1641  $this->ctrl->getLinkTargetByClass(ilObjQuestionPoolSettingsGeneralGUI::class),
1642  [],
1643  [ilObjQuestionPoolSettingsGeneralGUI::class, ilObjTaxonomyGUI::class]
1644  );
1645 
1646  // skill service
1647  if ($this->isSkillsTabRequired()) {
1648  $link = $this->ctrl->getLinkTargetByClass(
1649  [ilQuestionPoolSkillAdministrationGUI::class, ilAssQuestionSkillAssignmentsGUI::class],
1651  );
1652 
1653  $this->tabs_gui->addTarget('qpl_tab_competences', $link, [], []);
1654  }
1655  }
1656 
1657  if ($with_read_access) {
1658  // print view
1659  $this->tabs_gui->addTarget(
1660  'print_view',
1661  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'print'),
1662  ['print'],
1663  '',
1664  ''
1665  );
1666  }
1667 
1668  if ($with_write_access) {
1669  $mdgui = new ilObjectMetaDataGUI($this->object);
1670  $mdtab = $mdgui->getTab();
1671  if ($mdtab) {
1672  $this->tabs_gui->addTarget(
1673  'meta_data',
1674  $mdtab,
1675  '',
1676  'ilmdeditorgui'
1677  );
1678  }
1679  }
1680 
1681  if ($with_write_access) {
1682  $this->tabs_gui->addTarget(
1683  'export',
1684  $this->ctrl->getLinkTargetByClass(ilExportGUI::class, ''),
1685  '',
1686  'ilexportgui'
1687  );
1688  }
1689 
1690  if ($this->access->checkAccess('edit_permission', '', $this->object->getRefId())) {
1691  $this->tabs_gui->addTarget(
1692  'perm_settings',
1693  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class, ilPermissionGUI::class], 'perm'),
1694  ['perm', 'info', 'owner'],
1695  'ilpermissiongui'
1696  );
1697  }
1698  }
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 1374 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(), and ilSession\set().

1374  : void
1375  {
1376  list($subdir, $importdir, $xmlfile, $qtifile) = $this->buildImportDirectoriesFromImportFile($file_to_import);
1377 
1379  ->withZipOutputPath($this->getImportTempDirectory());
1380 
1381  $unzip = $this->archives->unzip(Streams::ofResource(fopen($file_to_import, 'r')), $options);
1382  $unzip->extract();
1383 
1384  if (!file_exists($qtifile)) {
1385  ilFileUtils::delDir($importdir);
1386  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('cannot_find_xml'), true);
1387  return;
1388  }
1389 
1390  ilSession::set('path_to_import_file', $file_to_import);
1391  ilSession::set('path_to_uploaded_file_in_temp_dir', $path_to_uploaded_file_in_temp_dir);
1392 
1393  $this->ctrl->setParameterByClass(self::class, 'new_type', $this->type);
1394  $form = $this->buildImportQuestionsSelectionForm(
1395  'importVerifiedFile',
1396  $importdir,
1397  $qtifile,
1398  $path_to_uploaded_file_in_temp_dir
1399  );
1400 
1401  if ($form === null) {
1402  return;
1403  }
1404 
1405  $panel = $this->ui_factory->panel()->standard(
1406  $this->lng->txt('import_qpl'),
1407  [
1408  $this->ui_factory->legacy($this->lng->txt('qpl_import_verify_found_questions')),
1409  $form
1410  ]
1411  );
1412  $this->tpl->setContent($this->ui_renderer->render($panel));
1413  $this->tpl->printToStdout();
1414  exit;
1415  }
buildImportQuestionsSelectionForm(string $form_cmd, string $importdir, string $qtifile, string $path_to_uploaded_file_in_temp_dir=null)
static delDir(string $a_dir, bool $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
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 901 of file class.ilObjQuestionPoolGUI.php.

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

Referenced by importVerifiedFileObject(), and importVerifiedQuestionsFileObject().

905  : void {
906 
907  ilSession::set('qpl_import_selected_questions', $selected_questions);
908  $imp = new ilImport($this->request_data_collector->getRefId());
909  $map = $imp->getMapping();
910  $map->addMapping('components/ILIAS/TestQuestionPool', 'qpl', 'new_id', (string) $obj->getId());
911  $imp->importObject($obj, $file_to_import, basename($file_to_import), 'qpl', 'components/ILIAS/TestQuestionPool', true);
912  }
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 1322 of file class.ilObjQuestionPoolGUI.php.

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

Referenced by uploadQuestionsImportObject().

1322  : void
1323  {
1324  if (!$this->temp_file_system->hasDir($path_to_uploaded_file_in_temp_dir)
1325  || ($files = $this->temp_file_system->listContents($path_to_uploaded_file_in_temp_dir)) === []) {
1326  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('obj_import_file_error'));
1327  }
1328 
1329  $file_to_import = $this->import_temp_directory . DIRECTORY_SEPARATOR . $files[0]->getPath();
1330  $qtifile = $file_to_import;
1331  $importdir = dirname($file_to_import);
1332 
1333 
1334  if ($this->temp_file_system->getMimeType($files[0]->getPath()) === MimeType::APPLICATION__ZIP) {
1336  ->withZipOutputPath($this->getImportTempDirectory());
1337  $unzip = $this->archives->unzip($this->temp_file_system->readStream($files[0]->getPath()), $options);
1338  $unzip->extract();
1339  list($subdir, $importdir, $xmlfile, $qtifile) = $this->buildImportDirectoriesFromImportFile($file_to_import);
1340  }
1341  if (!file_exists($qtifile)) {
1342  ilFileUtils::delDir($importdir);
1343  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('cannot_find_xml'), true);
1344  $this->questionsObject();
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  $form = $this->buildImportQuestionsSelectionForm(
1352  'importVerifiedQuestionsFile',
1353  $importdir,
1354  $qtifile,
1355  $path_to_uploaded_file_in_temp_dir
1356  );
1357 
1358  if ($form === null) {
1359  return;
1360  }
1361 
1362  $panel = $this->ui_factory->panel()->standard(
1363  $this->lng->txt('import_question'),
1364  [
1365  $this->ui_factory->legacy($this->lng->txt('qpl_import_verify_found_questions')),
1366  $form
1367  ]
1368  );
1369  $this->tpl->setContent($this->ui_renderer->render($panel));
1370  $this->tpl->printToStdout();
1371  exit;
1372  }
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
static delDir(string $a_dir, bool $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
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 914 of file class.ilObjQuestionPoolGUI.php.

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

Referenced by importVerifiedFileObject(), and importVerifiedQuestionsFileObject().

920  : void {
921  $qti_parser = new ilQTIParser(
922  $importdir,
923  $qtifile,
925  $obj->getId(),
926  $selected_questions
927  );
928  $qti_parser->startParsing();
929 
930  if ($xmlfile === '') {
931  return;
932  }
933 
934  $cont_parser = new ilQuestionPageParser(
935  $obj,
936  $xmlfile,
937  $importdir
938  );
939  $cont_parser->setQuestionMapping($qti_parser->getImportMapping());
940  $cont_parser->startParsing();
941  }
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 755 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().

755  : void
756  {
757  if ($this->creation_mode
758  && !$this->checkPermissionBool('create', '', $this->request_data_collector->string('new_type'))
759  || !$this->creation_mode
760  && !$this->checkPermissionBool('read', '', $this->object->getType())) {
761  $this->redirectAfterMissingWrite();
762  return;
763  }
764 
765  $file_to_import = ilSession::get('path_to_import_file');
766  list($subdir, $importdir, $xmlfile, $qtifile) = $this->buildImportDirectoriesFromImportFile($file_to_import);
767 
768  $new_obj = new ilObjQuestionPool(0, true);
769  $new_obj->setType($this->request_data_collector->raw('new_type'));
770  $new_obj->setTitle('dummy');
771  $new_obj->setDescription('questionpool import');
772  $new_obj->create(true);
773  $new_obj->createReference();
774  $new_obj->putInTree($this->request_data_collector->getRefId());
775  $new_obj->setPermissions($this->request_data_collector->getRefId());
776 
778  'importVerifiedFile',
779  $importdir,
780  $qtifile,
781  $this->request
782  );
783 
784  if (is_file($importdir . DIRECTORY_SEPARATOR . 'manifest.xml')) {
786  $new_obj,
787  $selected_questions,
788  $file_to_import
789  );
790  } else {
792  $new_obj,
793  $selected_questions,
794  $qtifile,
795  $importdir,
796  $xmlfile
797  );
798 
799  $new_obj->fromXML($xmlfile);
800 
801  $new_obj->update();
802  $new_obj->saveToDb();
803  }
804  $this->cleanupAfterImport($importdir);
805 
806  $this->tpl->setOnScreenMessage('success', $this->lng->txt('object_imported'), true);
807  $this->ctrl->setParameterByClass(self::class, 'ref_id', $new_obj->getRefId());
808  $this->ctrl->redirectByClass(self::class);
809  }
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 811 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().

811  : void
812  {
813  $file_to_import = ilSession::get('path_to_import_file');
814 
815  if (mb_substr($file_to_import, -3) === 'xml') {
816  $importdir = dirname($file_to_import);
818  'importVerifiedQuestionsFile',
819  $importdir,
820  $file_to_import,
821  $this->request
822  );
824  $this->getObject(),
825  $selected_questions,
826  $file_to_import,
827  $importdir
828  );
829  } else {
830  list($subdir, $importdir, $xmlfile, $qtifile) = $this->buildImportDirectoriesFromImportFile($file_to_import);
832  'importVerifiedQuestionsFile',
833  $importdir,
834  $qtifile,
835  $this->request
836  );
837  if (is_file($importdir . DIRECTORY_SEPARATOR . 'manifest.xml')) {
839  $this->getObject(),
840  $selected_questions,
841  $file_to_import
842  );
843  } else {
845  $this->getObject(),
846  $selected_questions,
847  $qtifile,
848  $importdir,
849  $xmlfile
850  );
851  }
852  }
853 
854  $this->cleanupAfterImport($importdir);
855 
856  $this->tpl->setOnScreenMessage('success', $this->lng->txt('object_imported'), true);
857  $this->questionsObject();
858  }
static get(string $a_var)
importQuestionsFromQtiFile(ilObjQuestionPool $obj, array $selected_questions, string $qtifile, string $importdir, string $xmlfile='')
questionsObject(RoundTripModal $import_questions_modal=null)
list questions of question pool
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 1743 of file class.ilObjQuestionPoolGUI.php.

References ilObjectGUI\$ctrl, $DIC, $ilErr, 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().

1743  : void
1744  {
1745  if (!$this->access->checkAccess('visible', '', $this->ref_id)) {
1746  $this->error->raiseError($this->lng->txt('msg_no_perm_read'));
1747  }
1748 
1749  $this->tabs_gui->activateTab('info_short');
1750  $info = new ilInfoScreenGUI($this);
1751  $info->enablePrivateNotes();
1752  $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
1753 
1754  $this->ctrl->forwardCommand($info);
1755  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ infoScreenObject()

ilObjQuestionPoolGUI::infoScreenObject ( )

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

References ILIAS\Repository\ctrl().

1732  : void
1733  {
1734  $this->ctrl->redirectByClass(
1735  [
1736  ilRepositoryGUI::class,
1737  self::class,
1738  ilInfoScreenGUI::class
1739  ]
1740  );
1741  }
+ Here is the call graph for this function:

◆ isSkillsTabRequired()

ilObjQuestionPoolGUI::isSkillsTabRequired ( )
private

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

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

Referenced by getTabs().

1700  : bool
1701  {
1702  if (!($this->object instanceof ilObjQuestionPool)) {
1703  return false;
1704  }
1705 
1706  if (!$this->object->isSkillServiceEnabled()) {
1707  return false;
1708  }
1709 
1711  return false;
1712  }
1713 
1714  return true;
1715  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ moveQuestions()

ilObjQuestionPoolGUI::moveQuestions ( array  $ids)

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

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

1294  : void
1295  {
1296  if ($ids) {
1297  foreach ($ids as $id) {
1298  $this->object->moveToClipboard($id);
1299  }
1300  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_move_insert_clipboard'), true);
1301  } else {
1302  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_move_select_none'), true);
1303  }
1304  }
+ Here is the call graph for this function:

◆ pasteObject()

ilObjQuestionPoolGUI::pasteObject ( )

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

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

1268  : void
1269  {
1270  if (ilSession::get('qpl_clipboard') != null) {
1271  if ($this->object->pasteFromClipboard()) {
1272  $this->tpl->setOnScreenMessage('success', $this->lng->txt('qpl_paste_success'), true);
1273  } else {
1274  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('qpl_paste_error'), true);
1275  }
1276  } else {
1277  $this->tpl->setOnScreenMessage('info', $this->lng->txt('qpl_paste_no_objects'), true);
1278  }
1279  $this->ctrl->redirect($this, self::DEFAULT_CMD);
1280  }
static get(string $a_var)
+ Here is the call graph for this function:

◆ printObject()

ilObjQuestionPoolGUI::printObject ( )

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

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

1232  : void
1233  {
1234  $this->tabs_gui->activateTab('print_view');
1235  $this->ctrl->setParameter($this, 'output', 'overview');
1236  $output_link = $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'print');
1237  $this->ctrl->setParameter($this, 'output', 'detailed_output_solutions');
1238  $output_link_detailed = $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'print');
1239  $this->ctrl->setParameter($this, 'output', 'detailed_output_printview');
1240  $output_link_printview = $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'print');
1241 
1242  $mode = $this->ui_factory->dropdown()->standard([
1243  $this->ui_factory->button()->shy($this->lng->txt('overview'), $output_link),
1244  $this->ui_factory->button()->shy($this->lng->txt('detailed_output_solutions'), $output_link_detailed),
1245  $this->ui_factory->button()->shy($this->lng->txt('detailed_output_printview'), $output_link_printview)
1246  ])->withLabel($this->lng->txt('output_mode'));
1247 
1248  $output = $this->request_data_collector->raw('output') ?? '';
1249 
1250  $table_gui = new ilQuestionPoolPrintViewTableGUI($this, 'print', $output);
1251  $data = $this->object->getPrintviewQuestions();
1252  $totalPoints = 0;
1253  foreach ($data as $d) {
1254  $totalPoints += $d['points'];
1255  }
1256  $table_gui->setTotalPoints($totalPoints);
1257  $table_gui->initColumns();
1258  $table_gui->setData($data);
1259  $this->tpl->setContent($this->ui_renderer->render($mode) . $table_gui->getHTML());
1260  }
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 1098 of file class.ilObjQuestionPoolGUI.php.

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

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

1098  : void
1099  {
1100  if (!$this->access->checkAccess("read", "", $this->request_data_collector->getRefId())) {
1101  $this->infoScreenForward();
1102  return;
1103  }
1104 
1105  $this->object->purgeQuestions();
1106  $qsa_import_fails = new ilAssQuestionSkillAssignmentImportFails($this->object->getId());
1107  if ($qsa_import_fails->failedImportsRegistered()) {
1108  $button = $this->ui_factory->button()->standard(
1109  $this->lng->txt('ass_skl_import_fails_remove_btn'),
1110  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'renoveImportFails')
1111  );
1112  $this->tpl->setOnScreenMessage(
1113  'failure',
1114  $qsa_import_fails->getFailedImportsMessage($this->lng) . '<br />' . $this->ui_renderer->render(
1115  $button
1116  )
1117  );
1118  }
1119 
1120  $out = [];
1121  if ($this->rbac_system->checkAccess('write', $this->request_data_collector->getRefId())) {
1122  $btn = $this->ui_factory->button()->primary(
1123  $this->lng->txt('ass_create_question'),
1124  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'createQuestionForm')
1125  );
1126  $this->toolbar->addComponent($btn);
1127 
1128  if ($import_questions_modal === null) {
1129  $import_questions_modal = $this->buildImportQuestionsModal();
1130  }
1131 
1132  $btn_import = $this->ui_factory->button()->standard(
1133  $this->lng->txt('import'),
1134  $import_questions_modal->getShowSignal()
1135  );
1136  $this->toolbar->addComponent($btn_import);
1137  $out[] = $this->ui_renderer->render($import_questions_modal);
1138 
1139  if (ilSession::get('qpl_clipboard') != null && count(ilSession::get('qpl_clipboard'))) {
1140  $btn_paste = $this->ui_factory->button()->standard(
1141  $this->lng->txt('paste'),
1142  $this->ctrl->getLinkTargetByClass([ilRepositoryGUI::class, self::class], 'paste')
1143  );
1144  $this->toolbar->addComponent($btn_paste);
1145  }
1146  }
1147 
1148  $this->tpl->setPermanentLink($this->object->getType(), $this->object->getRefId());
1149  $out[] = $this->getTable();
1150  $this->tpl->setContent(implode('', $out));
1151  }
static get(string $a_var)
$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 711 of file class.ilObjQuestionPoolGUI.php.

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

Referenced by importVerifiedFileObject().

712  {
713  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('no_permission'), true);
714  $target_class = get_class($this->object) . 'GUI';
715  $this->ctrl->setParameterByClass($target_class, 'ref_id', $this->ref_id);
716  $this->ctrl->redirectByClass($target_class);
717  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renoveImportFailsObject()

ilObjQuestionPoolGUI::renoveImportFailsObject ( )
protected

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

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

1081  : void
1082  {
1083  $qsaImportFails = new ilAssQuestionSkillAssignmentImportFails($this->object->getId());
1084  $qsaImportFails->deleteRegisteredImportFails();
1085 
1086  $this->ctrl->redirectByClass(
1087  [
1088  ilRepositoryGUI::class,
1089  self::class,
1090  ilInfoScreenGUI::class
1091  ]
1092  );
1093  }
+ Here is the call graph for this function:

◆ setTitleAndDescription()

ilObjQuestionPoolGUI::setTitleAndDescription ( )

called by prepare output

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

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

1464  : void
1465  {
1466  parent::setTitleAndDescription();
1467 
1468  if (!is_array($this->request_data_collector->raw('q_id')) && $this->request_data_collector->raw('q_id') > 0 && $this->request_data_collector->raw(
1469  'cmd'
1470  ) !== self::DEFAULT_CMD) {
1471  $question_gui = assQuestionGUI::_getQuestionGUI('', $this->request_data_collector->getQuestionId());
1472  if ($question_gui->getObject() instanceof assQuestion) {
1473  $question = $question_gui->getObject();
1474  $question->setObjId($this->object->getId());
1475  $question_gui->setObject($question);
1476  $title = $this->object->getTitle() . ': ' . $question_gui->getObject()->getTitle();
1477  if (!$title) {
1478  $title = $this->lng->txt('new') . ': ' . $this->questionrepository->getForQuestionId(
1479  $question_gui->getObject()->getId()
1480  )->getTypeName($this->lng);
1481  }
1482  $this->tpl->setTitle(
1483  $this->refinery->encode()->htmlSpecialCharsAsEntities()->transform(
1484  $title,
1485  )
1486  );
1487  $this->tpl->setDescription(
1488  $question_gui->getObject()->getDescriptionForHTMLOutput()
1489  );
1490  $this->tpl->setTitleIcon(ilObject2::_getIcon($this->object->getId(), 'big', $this->object->getType()));
1491  } else {
1492  // Workaround for context issues: If no object was found, redirect without q_id parameter
1493  $this->ctrl->setParameter($this, 'q_id', '');
1494  $this->ctrl->redirect($this);
1495  }
1496  } else {
1497  $this->tpl->setTitle(
1498  $this->refinery->encode()->htmlSpecialCharsAsEntities()->transform(
1499  $this->object->getTitle()
1500  )
1501  );
1502  $this->tpl->setDescription(
1503  $this->refinery->encode()->htmlSpecialCharsAsEntities()->transform(
1504  $this->object->getLongDescription()
1505  )
1506  );
1507  $this->tpl->setTitleIcon(ilObject2::_getIcon($this->object->getId(), 'big', $this->object->getType()));
1508  }
1509  }
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 1262 of file class.ilObjQuestionPoolGUI.php.

References ILIAS\Repository\lng().

1262  : void
1263  {
1264  $this->object->update();
1265  $this->tpl->setOnScreenMessage('success', $this->lng->txt('msg_obj_modified'), true);
1266  }
+ Here is the call graph for this function:

◆ uploadQuestionsImportObject()

ilObjQuestionPoolGUI::uploadQuestionsImportObject ( )

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

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

860  : void
861  {
862  $import_questions_modal = $this->buildImportQuestionsModal()->withRequest($this->request);
863  $data = $import_questions_modal->getData();
864  if ($data === null) {
865  $this->questionsObject(
866  $import_questions_modal->withOnLoad(
867  $import_questions_modal->getShowSignal()
868  )
869  );
870  return;
871  }
872  $path_to_imported_file_in_temp_dir = $data['import_file'][0];
873  $this->importQuestionsFile($path_to_imported_file_in_temp_dir);
874  }
importQuestionsFile(string $path_to_uploaded_file_in_temp_dir)
questionsObject(RoundTripModal $import_questions_modal=null)
list questions of question pool
+ Here is the call graph for this function:

Field Documentation

◆ $action_parameter_token

URLBuilderToken ilObjQuestionPoolGUI::$action_parameter_token
protected

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

◆ $archives

Archives ilObjQuestionPoolGUI::$archives
private

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

◆ $component_factory

ilComponentFactory ilObjQuestionPoolGUI::$component_factory
protected

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

◆ $component_repository

ilComponentRepository ilObjQuestionPoolGUI::$component_repository
protected

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

◆ $content_style

ContentStyle ilObjQuestionPoolGUI::$content_style
private

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

◆ $data_factory

DataFactory ilObjQuestionPoolGUI::$data_factory
protected

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

◆ $db

ilDBInterface ilObjQuestionPoolGUI::$db
protected

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

◆ $global_screen

GlobalScreen ilObjQuestionPoolGUI::$global_screen
protected

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

◆ $global_test_settings

GlobalTestSettings ilObjQuestionPoolGUI::$global_test_settings
protected

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

◆ $help

ilHelpGUI ilObjQuestionPoolGUI::$help
protected

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

◆ $http

HTTPServices ilObjQuestionPoolGUI::$http
private

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

◆ $log

ilComponentLogger ilObjQuestionPoolGUI::$log
protected

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

◆ $navigation_history

ilNavigationHistory ilObjQuestionPoolGUI::$navigation_history
protected

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

◆ $questionrepository

GeneralQuestionPropertiesRepository ilObjQuestionPoolGUI::$questionrepository
protected

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

◆ $request_data_collector

RequestDataCollector ilObjQuestionPoolGUI::$request_data_collector
protected

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

◆ $row_id_token

URLBuilderToken ilObjQuestionPoolGUI::$row_id_token
protected

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

◆ $taxonomy

Service ilObjQuestionPoolGUI::$taxonomy
protected

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

◆ $ui_service

ilUIService ilObjQuestionPoolGUI::$ui_service
protected

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

◆ $url_builder

URLBuilder ilObjQuestionPoolGUI::$url_builder
protected

Definition at line 84 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: