/** * addFilterInputFieldToTable This function adds the according filter item to the table gui passed as argument. * @param $field ilDataCollectionField The field which should be filterable. * @param &$table ilTable2GUI The table you want the filter to be added to. */ static function addFilterInputFieldToTable(ilDataCollectionField $field, ilTable2GUI &$table) { global $lng; $type_id = $field->getDatatypeId(); $input = NULL; switch ($type_id) { case ilDataCollectionDatatype::INPUTFORMAT_TEXT: $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_TEXT, false, $field->getId()); $input->setSubmitFormOnEnter(true); break; case ilDataCollectionDatatype::INPUTFORMAT_NUMBER: $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_NUMBER_RANGE, false, $field->getId()); $input->setSubmitFormOnEnter(true); break; case ilDataCollectionDatatype::INPUTFORMAT_BOOLEAN: $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_SELECT, false, $field->getId()); $input->setOptions(array("" => $lng->txt("dcl_any"), "not_checked" => $lng->txt("dcl_not_checked"), "checked" => $lng->txt("dcl_checked"))); break; case ilDataCollectionDatatype::INPUTFORMAT_DATETIME: $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_DATE_RANGE, false, $field->getId()); $input->setSubmitFormOnEnter(true); $input->setStartYear(date("Y") - 100); break; case ilDataCollectionDatatype::INPUTFORMAT_FILE: $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_TEXT, false, $field->getId()); $input->setSubmitFormOnEnter(true); break; case ilDataCollectionDatatype::INPUTFORMAT_REFERENCE: $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_SELECT, false, $field->getId()); $ref_field_id = $field->getFieldRef(); $ref_field = ilDataCollectionCache::getFieldCache($ref_field_id); $ref_table = ilDataCollectionCache::getTableCache($ref_field->getTableId()); $options = array(); foreach ($ref_table->getRecords() as $record) { $options[$record->getId()] = $record->getRecordFieldValue($ref_field_id); } // Sort by values ASC asort($options); $options = array('' => $lng->txt('dcl_any')) + $options; $input->setOptions($options); break; case ilDataCollectionDatatype::INPUTFORMAT_RATING: $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_SELECT, false, $field->getId()); $options = array("" => $lng->txt("dcl_any"), 1 => ">1", 2 => ">2", 3 => ">3", 4 => ">4", 5 => "5"); $input->setOptions($options); break; case ilDataCollectionDatatype::INPUTFORMAT_MOB: $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_TEXT, false, $field->getId()); $input->setSubmitFormOnEnter(true); break; case ilDataCollectionDatatype::INPUTFORMAT_ILIAS_REF: $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_TEXT, false, $field->getId()); $input->setSubmitFormOnEnter(true); break; case ilDataCollectionDatatype::INPUTFORMAT_REFERENCELIST: //FIXME $input = $table->addFilterItemByMetaType("filter_" . $field->getId(), ilTable2GUI::FILTER_SELECT, false, $field->getId()); $ref_field_id = $field->getFieldRef(); $ref_field = ilDataCollectionCache::getFieldCache($ref_field_id); $ref_table = ilDataCollectionCache::getTableCache($ref_field->getTableId()); $options = array(); foreach ($ref_table->getRecords() as $record) { $options[$record->getId()] = $record->getRecordFieldValue($ref_field_id); } // Sort by values ASC asort($options); $options = array('' => $lng->txt('dcl_any')) + $options; $input->setOptions($options); break; } if ($input != NULL) { $input->setTitle($field->getTitle()); } return $input; }