예제 #1
0
 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();
 }