public function init() { // ----- EXTENSION POINT // IDs aller Feldtypen bei denen das Parameter-Feld eingeblendet werden soll $typeFields = rex_extension::registerPoint(new rex_extension_point('METAINFO_TYPE_FIELDS', [REX_METAINFO_FIELD_SELECT, REX_METAINFO_FIELD_RADIO, REX_METAINFO_FIELD_CHECKBOX, REX_METAINFO_FIELD_REX_MEDIA_WIDGET, REX_METAINFO_FIELD_REX_MEDIALIST_WIDGET, REX_METAINFO_FIELD_REX_LINK_WIDGET, REX_METAINFO_FIELD_REX_LINKLIST_WIDGET])); $field = $this->addReadOnlyField('prefix', $this->metaPrefix); $field->setLabel(rex_i18n::msg('minfo_field_label_prefix')); $field = $this->addTextField('name'); $field->setLabel(rex_i18n::msg('minfo_field_label_name')); $field = $this->addSelectField('priority'); $field->setLabel(rex_i18n::msg('minfo_field_label_priority')); $select = $field->getSelect(); $select->setSize(1); $select->addOption(rex_i18n::msg('minfo_field_first_priority'), 1); // Im Edit Mode das Feld selbst nicht als Position einf�gen $qry = 'SELECT name,priority FROM ' . $this->tableName . ' WHERE `name` LIKE "' . $this->metaPrefix . '%"'; if ($this->isEditMode()) { $qry .= ' AND id != ' . $this->getParam('field_id'); } $qry .= ' ORDER BY priority'; $sql = rex_sql::factory(); $sql->setQuery($qry); $value = 1; for ($i = 0; $i < $sql->getRows(); ++$i) { $value = $sql->getValue('priority') + 1; $select->addOption(rex_i18n::rawMsg('minfo_field_after_priority', $sql->getValue('name')), $value); $sql->next(); } if (!$this->isEditMode()) { $select->setSelected($value); } $field = $this->addTextField('title'); $field->setLabel(rex_i18n::msg('minfo_field_label_title')); $field->setNotice(rex_i18n::msg('minfo_field_notice_title')); $gq = rex_sql::factory(); $gq->setQuery('SELECT dbtype,id FROM ' . rex::getTablePrefix() . 'metainfo_type'); $textFields = []; foreach ($gq->getArray() as $f) { if ($f['dbtype'] == 'text') { $textFields[$f['id']] = $f['id']; } } $field = $this->addSelectField('type_id'); $field->setLabel(rex_i18n::msg('minfo_field_label_type')); $field->setAttribute('onchange', 'meta_checkConditionalFields(this, new Array(' . implode(',', $typeFields) . '), new Array(' . implode(',', $textFields) . '));'); $select = $field->getSelect(); $select->setSize(1); $qry = 'SELECT label,id FROM ' . rex::getTablePrefix() . 'metainfo_type'; $select->addSqlOptions($qry); $notices = ''; for ($i = 1; $i < REX_METAINFO_FIELD_COUNT; ++$i) { if (rex_i18n::hasMsg('minfo_field_params_notice_' . $i)) { $notices .= '<span id="metainfo-field-params-notice-' . $i . '" style="display:none">' . rex_i18n::msg('minfo_field_params_notice_' . $i) . '</span>' . "\n"; } } $notices .= ' <script type="text/javascript"> var needle = new getObj("' . $field->getAttribute('id') . '"); meta_checkConditionalFields(needle.obj, new Array(' . implode(',', $typeFields) . '), new Array(' . implode(',', $textFields) . ')); </script>'; $field = $this->addTextAreaField('params'); $field->setLabel(rex_i18n::msg('minfo_field_label_params')); $field->setNotice($notices); $field = $this->addTextAreaField('attributes'); $field->setLabel(rex_i18n::msg('minfo_field_label_attributes')); $notice = rex_i18n::msg('minfo_field_attributes_notice') . "\n"; $field->setNotice($notice); $field = $this->addTextAreaField('callback'); $field->setLabel(rex_i18n::msg('minfo_field_label_callback')); $notice = rex_i18n::msg('minfo_field_label_notice') . "\n"; $field->setNotice($notice); $field = $this->addTextField('default'); $field->setLabel(rex_i18n::msg('minfo_field_label_default')); if ('clang_' !== $this->metaPrefix) { $attributes = []; $attributes['internal::fieldClass'] = 'rex_form_restrictons_element'; $field = $this->addField('', 'restrictions', null, $attributes); $field->setLabel(rex_i18n::msg('minfo_field_label_restrictions')); $field->setAttribute('size', 10); $field->setAttribute('class', 'form-control'); } parent::init(); }
function init() { global $REX, $I18N; // ----- EXTENSION POINT // IDs aller Feldtypen bei denen das Parameter-Feld eingeblendet werden soll $typeFields = rex_register_extension_point('A62_TYPE_FIELDS', array(REX_A62_FIELD_SELECT, REX_A62_FIELD_RADIO, REX_A62_FIELD_CHECKBOX, REX_A62_FIELD_REX_MEDIA_BUTTON, REX_A62_FIELD_REX_MEDIALIST_BUTTON, REX_A62_FIELD_REX_LINK_BUTTON, REX_A62_FIELD_REX_LINKLIST_BUTTON)); $field =& $this->addReadOnlyField('prefix', $this->metaPrefix); $field->setLabel($I18N->msg('minfo_field_label_prefix')); $field =& $this->addTextField('name'); $field->setLabel($I18N->msg('minfo_field_label_name')); $field =& $this->addSelectField('prior'); $field->setLabel($I18N->msg('minfo_field_label_prior')); $select =& $field->getSelect(); $select->setSize(1); $select->addOption($I18N->msg('minfo_field_first_prior'), 1); // Im Edit Mode das Feld selbst nicht als Position einfügen $qry = 'SELECT name,prior FROM ' . $this->tableName . ' WHERE `name` LIKE "' . $this->metaPrefix . '%"'; if ($this->isEditMode()) { $qry .= ' AND field_id != ' . $this->getParam('field_id'); } $qry .= ' ORDER BY prior'; $sql = rex_sql::factory(); $sql->setQuery($qry); for ($i = 0; $i < $sql->getRows(); $i++) { $select->addOption($I18N->msg('minfo_field_after_prior', $sql->getValue('name')), $sql->getValue('prior') + 1); $sql->next(); } $field =& $this->addTextField('title'); $field->setLabel($I18N->msg('minfo_field_label_title')); $field->setNotice($I18N->msg('minfo_field_notice_title')); $gq = new rex_sql(); $gq->setQuery('SELECT dbtype,id FROM ' . $REX['TABLE_PREFIX'] . '62_type'); $textFields = array(); foreach ($gq->getArray() as $f) { if ($f['dbtype'] == 'text') { $textFields[$f['id']] = $f['id']; } } $field =& $this->addSelectField('type'); $field->setLabel($I18N->msg('minfo_field_label_type')); $field->setAttribute('onchange', 'meta_checkConditionalFields(this, new Array(' . implode(',', $typeFields) . '), new Array(' . implode(',', $textFields) . '));'); $select =& $field->getSelect(); $select->setSize(1); $changeTypeFieldId = $field->getAttribute('id'); $qry = 'SELECT label,id FROM ' . $REX['TABLE_PREFIX'] . '62_type'; $select->addSqlOptions($qry); $notices = ''; for ($i = 1; $i < REX_A62_FIELD_COUNT; $i++) { if ($I18N->hasMsg('minfo_field_params_notice_' . $i)) { $notices .= '<span class="rex-form-notice" id="a62_field_params_notice_' . $i . '" style="display:none">' . $I18N->msg('minfo_field_params_notice_' . $i) . '</span>' . "\n"; } } $notices .= ' <script type="text/javascript"> var needle = new getObj("' . $field->getAttribute('id') . '"); meta_checkConditionalFields(needle.obj, new Array(' . implode(',', $typeFields) . '), new Array(' . implode(',', $textFields) . ')); </script>'; $field =& $this->addTextAreaField('params'); $field->setLabel($I18N->msg('minfo_field_label_params')); $field->setSuffix($notices); $field =& $this->addTextAreaField('attributes'); $field->setLabel($I18N->msg('minfo_field_label_attributes')); $notice = '<span class="rex-form-notice" id="a62_field_attributes_notice">' . $I18N->msg('minfo_field_attributes_notice') . '</span>' . "\n"; $field->setSuffix($notice); $field =& $this->addTextField('default'); $field->setLabel($I18N->msg('minfo_field_label_default')); $attributes = array(); $attributes['internal::fieldClass'] = 'rex_form_restrictons_element'; $field =& $this->addField('', 'restrictions', $value = null, $attributes); $field->setLabel($I18N->msg('minfo_field_label_restrictions')); $field->setAttribute('size', 10); parent::init(); }