/** * Parse search * * @access private * @param * */ private function parseSearch() { include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php'; foreach (ilAdvancedMDRecord::_getActiveSearchableRecords() as $record) { $section = new ilFormSectionHeaderGUI(); $section->setTitle($record->getTitle()); $this->form->addItem($section); foreach (ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record->getRecordId()) as $field) { if (!$field->isSearchable()) { continue; } switch ($field->getFieldType()) { case ilAdvancedMDFieldDefinition::TYPE_TEXT: $group = new ilRadioGroupInputGUI('', 'boolean[' . $field->getFieldId() . ']'); $group->setValue(isset($this->search_values['boolean'][$field->getFieldId()]) ? $this->search_values['boolean'][$field->getFieldId()] : 0); $radio_option = new ilRadioOption($this->lng->txt("search_any_word"), 0); $radio_option->setValue(0); $group->addOption($radio_option); $radio_option = new ilRadioOption($this->lng->txt("search_all_words"), 1); $radio_option->setValue(1); $group->addOption($radio_option); $text = new ilTextInputGUI($field->getTitle(), $field->getFieldId()); $text->setValue(isset($this->search_values[$field->getFieldId()]) ? $this->search_values[$field->getFieldId()] : ''); $text->setSize(30); $text->setMaxLength(255); $text->addSubItem($group); $this->form->addItem($text); break; case ilAdvancedMDFieldDefinition::TYPE_SELECT: $select = new ilSelectInputGUI($field->getTitle(), $field->getFieldId()); $select->setValue(isset($this->search_values[$field->getFieldId()]) ? $this->search_values[$field->getFieldId()] : 0); $options = array(0 => $this->lng->txt('search_any')); $counter = 1; foreach ($field->getFieldValues() as $key => $value) { $options[$counter++] = $value; } $select->setOptions($options); $this->form->addItem($select); break; case ilAdvancedMDFieldDefinition::TYPE_DATETIME: case ilAdvancedMDFieldDefinition::TYPE_DATE: $check = new ilCheckboxInputGUI($field->getTitle(), $field->getFieldId()); $check->setValue(1); $check->setChecked(isset($this->search_values[$field->getFieldId()]) ? $this->search_values[$field->getFieldId()] : 0); $time = new ilDateTimeInputGUI($this->lng->txt('from'), 'date_start[' . $field->getFieldId() . ']'); if ($field->getFieldType() == ilAdvancedMDFieldDefinition::TYPE_DATE) { $time->setShowTime(false); } else { $time->setShowTime(true); } if (isset($this->search_values['date_start'][$field->getFieldId()]) and 0) { #$time->setUnixTime($this->toUnixTime($this->search_values['date_start'][$field->getFieldId()]['date'],$this->search_values['date_start'][$field->getFieldId()]['time'])); } else { $time->setDate(new ilDateTime(mktime(8, 0, 0, date('m'), date('d'), date('Y')), IL_CAL_UNIX)); } $check->addSubItem($time); $time = new ilDateTimeInputGUI($this->lng->txt('until'), 'date_end[' . $field->getFieldId() . ']'); if ($field->getFieldType() == ilAdvancedMDFieldDefinition::TYPE_DATE) { $time->setShowTime(false); } else { $time->setShowTime(true); } if (isset($this->search_values['date_end'][$field->getFieldId()]) and 0) { #$time->setUnixTime($this->toUnixTime($this->search_values['date_end'][$field->getFieldId()]['date'],$this->search_values['date_end'][$field->getFieldId()]['time'])); } else { $time->setDate(new ilDateTime(mktime(16, 0, 0, date('m'), date('d'), date('Y')), IL_CAL_UNIX)); } $check->addSubItem($time); $this->form->addItem($check); break; } } } }
/** * * * @access protected */ protected function initAdvancedMetaDataForm() { if (is_object($this->form)) { return $this->form; } include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php'; include_once 'Services/Form/classes/class.ilPropertyFormGUI.php'; $this->form = new ilPropertyFormGUI(); $this->form->setFormAction($this->ctrl->getFormAction($this, 'performAdvMDSearch')); $this->form->setTitle($this->lng->txt('adv_md_search_title')); $this->form->addCommandButton('performAdvMDSearch', $this->lng->txt('search')); #$this->form->setSubformMode('right'); $content = new ilTextInputGUI($this->lng->txt('meta_title') . '/' . $this->lng->txt('meta_keyword') . '/' . $this->lng->txt('meta_description'), 'title'); $content->setValue($this->options['title']); $content->setSize(30); $content->setMaxLength(255); // $content->setSubformMode('right'); $group = new ilRadioGroupInputGUI('', 'title_ao'); $group->setValue($this->options['title_ao']); $radio_option = new ilRadioOption($this->lng->txt("search_any_word"), 0); $group->addOption($radio_option); $radio_option = new ilRadioOption($this->lng->txt("search_all_words"), 1); $group->addOption($radio_option); $content->addSubItem($group); $this->form->addItem($content); $type = new ilSelectInputGUI($this->lng->txt('type'), 'type'); $options['adv_all'] = $this->lng->txt('search_any'); foreach (ilAdvancedMDRecord::_getActivatedObjTypes() as $obj_type) { $options[$obj_type] = $this->lng->txt('objs_' . $obj_type); } $type->setOptions($options); $type->setValue($this->options['type']); $this->form->addItem($type); include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php'; $record_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_SEARCH); $record_gui->setPropertyForm($this->form); $record_gui->setSearchValues($this->options); $record_gui->parse(); }