Exemplo n.º 1
0
 function formatElement()
 {
     global $I18N;
     $name = $this->getAttribute('name') . '[]';
     $value = explode('|', htmlspecialchars($this->getValue()));
     if (count($value) != 4) {
         $value = array(null, 1, 'd');
     }
     $select = new rex_select();
     $select->setAttribute('class', 'rex-form-select rex-a630-interval');
     $select->setStyle('width:120px');
     $select->setName($name);
     $select->setSize(1);
     $select->addOption($I18N->msg('cronjob_interval_hour'), 'h');
     $select->addOption($I18N->msg('cronjob_interval_day'), 'd');
     $select->addOption($I18N->msg('cronjob_interval_week'), 'w');
     $select->addOption($I18N->msg('cronjob_interval_month'), 'm');
     $select->addOption($I18N->msg('cronjob_interval_year'), 'y');
     $select->setSelected($value[2]);
     return '
         <input type="text" class="rex-form-text rex-a630-interval" name="' . $name . '" style="width:20px; margin-right: 5px;" value="' . $value[1] . '" />
         ' . $select->get() . "\n";
 }
"><?php 
    echo $this->getLabelStyle($this->relation['label']);
    ?>
</label>
        <?php 
    $select = new rex_select();
    $select->setStyle('class="form-control"');
    if ($this->relation['relation_type'] == 1) {
        $select->setName($this->getFieldName() . '[]');
        $select->setMultiple();
        $select->setSize($this->relation['size']);
    } else {
        $select->setName($this->getFieldName());
    }
    if ($this->relation['disabled']) {
        $select->setAttribute('disabled', 'disabled');
    }
    $select->addOptions($options);
    $select->setSelected($this->getValue());
    echo $select->get();
    ?>
    </div>
<?php 
} else {
    ?>
    <div class="<?php 
    echo $class_group;
    ?>
" id="<?php 
    echo $this->getHTMLId();
    ?>
Exemplo n.º 3
0
                $lang_a = new rex_select();
                $lang_a->setStyle('class="rex-form-select"');
                $lang_a->setId('clang_a');
                $lang_a->setName('clang_a');
                $lang_a->setSize('1');
                $lang_a->setAttribute('tabindex', rex_tabindex(false));
                foreach ($clang_perm as $key) {
                    $val = rex_translate($REX['CLANG'][$key]);
                    $lang_a->addOption($val, $key);
                }
                $lang_b = new rex_select();
                $lang_b->setStyle('class="rex-form-select"');
                $lang_b->setId('clang_b');
                $lang_b->setName('clang_b');
                $lang_b->setSize('1');
                $lang_b->setAttribute('tabindex', rex_tabindex(false));
                foreach ($clang_perm as $key) {
                    $val = rex_translate($REX['CLANG'][$key]);
                    $lang_b->addOption($val, $key);
                }
                $lang_a->setSelected(rex_request('clang_a', 'rex-clang-id', null));
                $lang_b->setSelected(rex_request('clang_b', 'rex-clang-id', null));
                $out .= '
              <fieldset class="rex-form-col-2">
                <legend>' . $I18N->msg('content_submitcopycontent') . '</legend>
							  <div class="rex-form-wrapper">
							  
							  	<div class="rex-form-row">
									  <p class="rex-form-col-a rex-form-select">
											<label for="clang_a">' . $I18N->msg('content_contentoflang') . '</label>
											' . $lang_a->get() . '
Exemplo n.º 4
0
             </thead>
         <tbody>
             ' . $actions . '
         </tbody>
         </table>
     ';
     $fragment = new rex_fragment();
     $fragment->setVar('title', rex_i18n::msg('actions_added_caption'), false);
     $fragment->setVar('content', $panel, false);
     $content .= $fragment->parse('core/page/section.php');
 }
 $gaa_sel = new rex_select();
 $gaa_sel->setName('action_id');
 $gaa_sel->setId('action_id');
 $gaa_sel->setSize(1);
 $gaa_sel->setAttribute('class', 'form-control');
 for ($i = 0; $i < $gaa->getRows(); ++$i) {
     $gaa_sel->addOption(rex_i18n::translate($gaa->getValue('name'), false), $gaa->getValue('id'));
     $gaa->next();
 }
 $panel = '';
 $panel .= '<fieldset>';
 $formElements = [];
 $n = [];
 $n['label'] = '<label for="action_id">' . rex_i18n::msg('action') . '</label>';
 $n['field'] = $gaa_sel->get();
 $formElements[] = $n;
 $fragment = new rex_fragment();
 $fragment->setVar('elements', $formElements, false);
 $panel .= $fragment->parse('core/form/form.php');
 $panel .= '</fieldset>';
    function getArticle($curctype = -1)
    {
        global $module_id, $REX_USER, $REX, $I18N;
        $this->ctype = $curctype;
        $sliceLimit = '';
        if ($this->getSlice) {
            //$REX['GG'] = 0;
            $sliceLimit = " AND " . $REX['TABLE_PREFIX'] . "article_slice.id = '" . $this->getSlice . "' ";
        }
        // ----- start: article caching
        ob_start();
        ob_implicit_flush(0);
        if ($REX['GG'] && !$this->viasql && !$this->getSlice) {
            if ($this->article_id != 0) {
                $this->contents = '';
                $article_content_file = $REX['INCLUDE_PATH'] . '/generated/articles/' . $this->article_id . '.' . $this->clang . '.content';
                if ($cont = rex_get_file_contents($article_content_file)) {
                    $this->contents = $cont;
                    eval($this->contents);
                }
            }
        } else {
            if ($this->article_id != 0) {
                // ---------- alle teile/slices eines artikels auswaehlen
                $sql = "SELECT " . $REX['TABLE_PREFIX'] . "module.id, " . $REX['TABLE_PREFIX'] . "module.name, " . $REX['TABLE_PREFIX'] . "module.ausgabe, " . $REX['TABLE_PREFIX'] . "module.eingabe, " . $REX['TABLE_PREFIX'] . "article_slice.*, " . $REX['TABLE_PREFIX'] . "article.re_id\r\n          FROM\r\n            " . $REX['TABLE_PREFIX'] . "article_slice\r\n          LEFT JOIN " . $REX['TABLE_PREFIX'] . "module ON " . $REX['TABLE_PREFIX'] . "article_slice.modultyp_id=" . $REX['TABLE_PREFIX'] . "module.id\r\n          LEFT JOIN " . $REX['TABLE_PREFIX'] . "article ON " . $REX['TABLE_PREFIX'] . "article_slice.article_id=" . $REX['TABLE_PREFIX'] . "article.id\r\n          WHERE\r\n            " . $REX['TABLE_PREFIX'] . "article_slice.article_id='" . $this->article_id . "' AND\r\n            " . $REX['TABLE_PREFIX'] . "article_slice.clang='" . $this->clang . "' AND\r\n            " . $REX['TABLE_PREFIX'] . "article.clang='" . $this->clang . "'\r\n            " . $sliceLimit . "\r\n            ORDER BY " . $REX['TABLE_PREFIX'] . "article_slice.re_article_slice_id";
                $this->CONT = new rex_sql();
                $this->CONT->debugsql = 0;
                $this->CONT->setQuery($sql);
                $RE_CONTS = array();
                $RE_CONTS_CTYPE = array();
                $RE_MODUL_OUT = array();
                $RE_MODUL_IN = array();
                $RE_MODUL_ID = array();
                $RE_MODUL_NAME = array();
                $RE_C = array();
                // ---------- SLICE IDS/MODUL SETZEN - speichern der daten
                for ($i = 0; $i < $this->CONT->getRows(); $i++) {
                    $RE_CONTS[$this->CONT->getValue('re_article_slice_id')] = $this->CONT->getValue($REX['TABLE_PREFIX'] . 'article_slice.id');
                    $RE_CONTS_CTYPE[$this->CONT->getValue('re_article_slice_id')] = $this->CONT->getValue($REX['TABLE_PREFIX'] . 'article_slice.ctype');
                    $RE_MODUL_IN[$this->CONT->getValue('re_article_slice_id')] = $this->CONT->getValue($REX['TABLE_PREFIX'] . 'module.eingabe');
                    $RE_MODUL_OUT[$this->CONT->getValue('re_article_slice_id')] = $this->CONT->getValue($REX['TABLE_PREFIX'] . 'module.ausgabe');
                    $RE_MODUL_ID[$this->CONT->getValue('re_article_slice_id')] = $this->CONT->getValue($REX['TABLE_PREFIX'] . 'module.id');
                    $RE_MODUL_NAME[$this->CONT->getValue('re_article_slice_id')] = $this->CONT->getValue($REX['TABLE_PREFIX'] . 'module.name');
                    $RE_C[$this->CONT->getValue('re_article_slice_id')] = $i;
                    $this->CONT->next();
                }
                // ---------- moduleselect: nur module nehmen auf die der user rechte hat
                if ($this->mode == 'edit') {
                    $MODULE = new rex_sql();
                    $MODULE->setQuery('select * from ' . $REX['TABLE_PREFIX'] . 'module order by name');
                    $MODULESELECT = new rex_select();
                    $MODULESELECT->setName('module_id');
                    $MODULESELECT->setSize('1');
                    $MODULESELECT->setAttribute('onchange', 'this.form.submit();');
                    $MODULESELECT->addOption('----------------------------  ' . $I18N->msg('add_block'), '');
                    for ($i = 0; $i < $MODULE->getRows(); $i++) {
                        if ($REX_USER->hasPerm('module[' . $MODULE->getValue('id') . ']') || $REX_USER->hasPerm('admin[]')) {
                            $MODULESELECT->addOption(rex_translate($MODULE->getValue('name'), NULL, FALSE), $MODULE->getValue('id'));
                        }
                        $MODULE->next();
                    }
                }
                // ---------- SLICE IDS SORTIEREN UND AUSGEBEN
                $I_ID = 0;
                $PRE_ID = 0;
                $LCTSL_ID = 0;
                $this->CONT->reset();
                $this->article_content = "";
                for ($i = 0; $i < $this->CONT->getRows(); $i++) {
                    // ----- ctype unterscheidung
                    if ($this->mode != "edit" && $i == 0) {
                        $this->article_content = "<?php if (\$this->ctype == '" . $RE_CONTS_CTYPE[$I_ID] . "' || (\$this->ctype == '-1')) { ?>";
                    }
                    // ------------- EINZELNER SLICE - AUSGABE
                    $this->CONT->counter = $RE_C[$I_ID];
                    $slice_content = "";
                    $SLICE_SHOW = TRUE;
                    if ($this->mode == "edit") {
                        $form_url = 'index.php';
                        if ($this->setanker) {
                            $form_url .= '#addslice';
                        }
                        $this->ViewSliceId = $RE_CONTS[$I_ID];
                        // ----- add select box einbauen
                        if ($this->function == "add" && $this->slice_id == $I_ID) {
                            $slice_content = $this->addSlice($I_ID, $module_id);
                        } else {
                            // ----- BLOCKAUSWAHL - SELECT
                            $MODULESELECT->setId("module_id" . $I_ID);
                            $slice_content = '
              <form action="' . $form_url . '" method="get" id="slice' . $RE_CONTS[$I_ID] . '">
                <fieldset>
                  <legend class="rex-lgnd"><span class="rex-hide">' . $I18N->msg("add_block") . '</span></legend>
                  <input type="hidden" name="article_id" value="' . $this->article_id . '" />
                  <input type="hidden" name="page" value="content" />
                  <input type="hidden" name="mode" value="' . $this->mode . '" />
                  <input type="hidden" name="slice_id" value="' . $I_ID . '" />
                  <input type="hidden" name="function" value="add" />
                  <input type="hidden" name="clang" value="' . $this->clang . '" />
                  <input type="hidden" name="ctype" value="' . $this->ctype . '" />

                  <p class="rex-slct">
                    ' . $MODULESELECT->get() . '
                    <noscript><input type="submit" class="rex-sbmt" name="btn_add" value="' . $I18N->msg("add_block") . '" /></noscript>
                  </p>

                </fieldset>
              </form>';
                        }
                        // ----- EDIT/DELETE BLOCK - Wenn Rechte vorhanden
                        if ($REX_USER->hasPerm("module[" . $RE_MODUL_ID[$I_ID] . "]") || $REX_USER->hasPerm("admin[]")) {
                            $msg = '';
                            if ($this->slice_id == $RE_CONTS[$I_ID] && $this->message != '') {
                                $msg = rex_warning($this->message);
                            }
                            $sliceUrl = 'index.php?page=content&amp;article_id=' . $this->article_id . '&amp;mode=edit&amp;slice_id=' . $RE_CONTS[$I_ID] . '&amp;clang=' . $this->clang . '&amp;ctype=' . $this->ctype . '%s#slice' . $RE_CONTS[$I_ID];
                            $listElements = array();
                            $listElements[] = '<a href="' . sprintf($sliceUrl, '&amp;function=edit') . '" class="rex-clr-grn">' . $I18N->msg('edit') . ' <span class="rex-hide">' . $RE_MODUL_NAME[$I_ID] . '</span></a>';
                            $listElements[] = '<a href="' . sprintf($sliceUrl, '&amp;function=delete&amp;save=1') . '" class="rex-clr-red" onclick="return confirm(\'' . $I18N->msg('delete') . ' ?\')">' . $I18N->msg('delete') . ' <span class="rex-hide">' . $RE_MODUL_NAME[$I_ID] . '</span></a>';
                            if ($REX_USER->hasPerm('moveSlice[]')) {
                                $moveUp = $I18N->msg('move_slice_up');
                                $moveDown = $I18N->msg('move_slice_down');
                                // upd stamp übergeben, da sonst ein block nicht mehrfach hintereindander verschoben werden kann
                                // (Links wären sonst gleich und der Browser lässt das klicken auf den gleichen Link nicht zu)
                                $listElements[] = '<a href="' . sprintf($sliceUrl, '&amp;upd=' . time() . '&amp;function=moveup') . '" title="' . $moveUp . '"><img src="media/file_up.gif" width="16" height="16" alt="' . $moveUp . '" /> <span class="rex-hide">' . $RE_MODUL_NAME[$I_ID] . '</span></a>';
                                $listElements[] = '<a href="' . sprintf($sliceUrl, '&amp;upd=' . time() . '&amp;function=movedown') . '" title="' . $moveDown . '"><img src="media/file_down.gif" width="16" height="16" alt="' . $moveDown . '" /> <span class="rex-hide">' . $RE_MODUL_NAME[$I_ID] . '</span></a>';
                            }
                            // ----- EXTENSION POINT
                            $listElements = rex_register_extension_point('ART_SLICE_MENU', $listElements, array('article_id' => $this->article_id, 'clang' => $this->clang, 'ctype' => $RE_CONTS_CTYPE[$I_ID], 'module_id' => $RE_MODUL_ID[$I_ID], 'slice_id' => $RE_CONTS[$I_ID]));
                            $mne = $msg . '
			       	<div class="rex-cnt-editmode-slc">
                <p class="rex-flLeft">' . htmlspecialchars($RE_MODUL_NAME[$I_ID]) . '</p>
                <ul class="rex-flRight" id="rex-slc-mnu">
              ';
                            foreach ($listElements as $listElement) {
                                $mne .= '<li>' . $listElement . '</li>';
                            }
                            $mne .= '</ul></div>';
                            $slice_content .= $mne;
                            if ($this->function == "edit" && $this->slice_id == $RE_CONTS[$I_ID]) {
                                // **************** Aktueller Slice
                                // ----- PRE VIEW ACTION [EDIT]
                                $REX_ACTION = array();
                                // nach klick auf den übernehmen button,
                                // die POST werte übernehmen
                                if (rex_var::isEditEvent()) {
                                    foreach ($REX['VARIABLES'] as $obj) {
                                        $REX_ACTION = $obj->getACRequestValues($REX_ACTION);
                                    }
                                } else {
                                    foreach ($REX['VARIABLES'] as $obj) {
                                        $REX_ACTION = $obj->getACDatabaseValues($REX_ACTION, $this->CONT);
                                    }
                                }
                                // TODO: PreviewActions gibts nur im EditMode...?
                                if ($this->function == 'edit') {
                                    $modebit = '2';
                                } elseif ($this->function == 'delete') {
                                    $modebit = '4';
                                } else {
                                    $modebit = '1';
                                }
                                // pre-action and add
                                $ga = new rex_sql();
                                $ga->debugsql = 0;
                                $ga->setQuery('SELECT preview FROM ' . $REX['TABLE_PREFIX'] . 'module_action ma,' . $REX['TABLE_PREFIX'] . 'action a WHERE preview != "" AND ma.action_id=a.id AND module_id=' . $RE_MODUL_ID[$I_ID] . ' AND ((a.previewmode & ' . $modebit . ') = ' . $modebit . ')');
                                for ($t = 0; $t < $ga->getRows(); $t++) {
                                    $iaction = $ga->getValue('preview');
                                    // ****************** VARIABLEN ERSETZEN
                                    foreach ($REX['VARIABLES'] as $obj) {
                                        $iaction = $obj->getACOutput($REX_ACTION, $iaction);
                                    }
                                    eval('?>' . $iaction);
                                    // ****************** SPEICHERN FALLS NOETIG
                                    foreach ($REX['VARIABLES'] as $obj) {
                                        $obj->setACValues($this->CONT, $REX_ACTION);
                                    }
                                    $ga->next();
                                }
                                // ----- / PRE VIEW ACTION
                                $slice_content .= $this->editSlice($RE_CONTS[$I_ID], $RE_MODUL_IN[$I_ID], $RE_CONTS_CTYPE[$I_ID], $RE_MODUL_ID[$I_ID]);
                            } else {
                                // Modulinhalt ausgeben
                                $slice_content .= '
                <!-- *** OUTPUT OF MODULE-OUTPUT - START *** -->
                <div class="rex-cnt-slc-otp"><div class="rex-cnt-slc-otp2">
                  ' . $RE_MODUL_OUT[$I_ID] . '
                </div></div>
                <!-- *** OUTPUT OF MODULE-OUTPUT - END *** -->
                ';
                                $slice_content = $this->replaceVars($this->CONT, $slice_content);
                            }
                        } else {
                            // ----- hat keine rechte an diesem modul
                            $mne = '
			  	<div class="rex-cnt-editmode-slc">
                <p class="rex-flLeft" id="slice' . $RE_CONTS[$I_ID] . '">' . $RE_MODUL_NAME[$I_ID] . '</p>
                <ul class="rex-flRight">
                  <li>' . $I18N->msg('no_editing_rights') . ' <span class="rex-hide">' . $RE_MODUL_NAME[$I_ID] . '</span></li>
                </ul>
				  </div>';
                            $slice_content .= $mne . $RE_MODUL_OUT[$I_ID];
                            $slice_content = $this->replaceVars($this->CONT, $slice_content);
                        }
                    } else {
                        // ----- wenn mode nicht edit
                        if ($this->getSlice) {
                            while (list($k, $v) = each($RE_CONTS)) {
                                $I_ID = $k;
                            }
                        }
                        $slice_content .= $RE_MODUL_OUT[$I_ID];
                        $slice_content = $this->replaceVars($this->CONT, $slice_content);
                    }
                    // --------------- ENDE EINZELNER SLICE
                    // --------------- EP: SLICE_SHOW
                    $slice_content = rex_register_extension_point('SLICE_SHOW', $slice_content, array('article_id' => $this->article_id, 'clang' => $this->clang, 'ctype' => $RE_CONTS_CTYPE[$I_ID], 'module_id' => $RE_MODUL_ID[$I_ID], 'slice_id' => $RE_CONTS[$I_ID], 'function' => $this->function, 'function_slice_id' => $this->slice_id));
                    // ---------- slice in ausgabe speichern wenn ctype richtig
                    if ($this->ctype == -1 or $this->ctype == $RE_CONTS_CTYPE[$I_ID]) {
                        $this->article_content .= $slice_content;
                        // last content type slice id
                        $LCTSL_ID = $RE_CONTS[$I_ID];
                    }
                    // ----- zwischenstand: ctype .. wenn ctype neu dann if
                    if ($this->mode != "edit" && isset($RE_CONTS_CTYPE[$RE_CONTS[$I_ID]]) && $RE_CONTS_CTYPE[$I_ID] != $RE_CONTS_CTYPE[$RE_CONTS[$I_ID]] && $RE_CONTS_CTYPE[$RE_CONTS[$I_ID]] != "") {
                        $this->article_content .= "<?php } if(\$this->ctype == '" . $RE_CONTS_CTYPE[$RE_CONTS[$I_ID]] . "' || \$this->ctype == '-1'){ ?>";
                    }
                    // zum nachsten slice
                    $I_ID = $RE_CONTS[$I_ID];
                    $PRE_ID = $I_ID;
                }
                // ----- end: ctype unterscheidung
                if ($this->mode != "edit" && $i > 0) {
                    $this->article_content .= "<?php } ?>";
                }
                // ----- add module im edit mode
                if ($this->mode == "edit") {
                    $form_url = 'index.php';
                    if ($this->setanker) {
                        $form_url .= '#addslice';
                    }
                    if ($this->function == "add" && $this->slice_id == $LCTSL_ID) {
                        $slice_content = $this->addSlice($LCTSL_ID, $module_id);
                    } else {
                        // ----- BLOCKAUSWAHL - SELECT
                        $MODULESELECT->setId("module_id" . $LCTSL_ID);
                        // $slice_content = $add_select_box;
                        $slice_content = '
            <form action="' . $form_url . '" method="get">
              <fieldset>
                <legend class="rex-lgnd"><span class="rex-hide">' . $I18N->msg("add_block") . '</span></legend>
                <input type="hidden" name="article_id" value="' . $this->article_id . '" />
                <input type="hidden" name="page" value="content" />
                <input type="hidden" name="mode" value="' . $this->mode . '" />
                <input type="hidden" name="slice_id" value="' . $LCTSL_ID . '" />
                <input type="hidden" name="function" value="add" />
                <input type="hidden" name="clang" value="' . $this->clang . '" />
                <input type="hidden" name="ctype" value="' . $this->ctype . '" />

                <p class="rex-slct">
                  ' . $MODULESELECT->get() . '
                  <noscript><input type="submit" class="rex-sbmt" name="btn_add" value="' . $I18N->msg("add_block") . '" /></noscript>
                </p>

              </fieldset>
            </form>';
                    }
                    $this->article_content .= $slice_content;
                }
                // -------------------------- schreibe content
                if ($this->mode == "generate" || $this->viasql) {
                    echo $this->replaceLinks($this->article_content);
                } else {
                    eval("?>" . $this->article_content);
                }
            } else {
                echo $I18N->msg('no_article_available');
            }
        }
        // ----- end: article caching
        $CONTENT = ob_get_contents();
        ob_end_clean();
        return $CONTENT;
    }
Exemplo n.º 6
0
 /**
  * Erstellt den nötigen HTML Code um ein Formular zu erweitern.
  *
  * @param rex_sql $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
  * @param array   $epParams  Array of all EP parameters
  *
  * @return string
  */
 public function renderMetaFields(rex_sql $sqlFields, array $epParams)
 {
     $s = '';
     // Startwert für MEDIABUTTON, MEDIALIST, LINKLIST zähler
     $media_id = 1;
     $mlist_id = 1;
     $link_id = 1;
     $llist_id = 1;
     $activeItem = isset($epParams['activeItem']) ? $epParams['activeItem'] : null;
     $sqlFields->reset();
     for ($i = 0; $i < $sqlFields->getRows(); $i++, $sqlFields->next()) {
         // Umschliessendes Tag von Label und Formularelement
         $tag = 'p';
         $tag_attr = '';
         $name = $sqlFields->getValue('name');
         $title = $sqlFields->getValue('title');
         $params = $sqlFields->getValue('params');
         $typeLabel = $sqlFields->getValue('label');
         $attr = $sqlFields->getValue('attributes');
         $dblength = $sqlFields->getValue('dblength');
         $attrArray = rex_string::split($attr);
         if (isset($attrArray['perm'])) {
             if (!rex::getUser()->hasPerm($attrArray['perm'])) {
                 continue;
             }
             unset($attrArray['perm']);
         }
         $defaultValue = $sqlFields->getValue('default');
         if ($activeItem) {
             $itemValue = $activeItem->getValue($name);
             if (strpos($itemValue, '|+|') !== false) {
                 // Alte notation mit |+| als Trenner
                 $dbvalues = explode('|+|', $activeItem->getValue($name));
             } else {
                 // Neue Notation mit | als Trenner
                 $dbvalues = explode('|', $activeItem->getValue($name));
             }
         } else {
             $dbvalues = (array) $sqlFields->getValue('default');
         }
         if ($title != '') {
             $label = rex_i18n::translate($title);
         } else {
             $label = htmlspecialchars($name);
         }
         $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
         $labelIt = true;
         $label = '<label for="' . $id . '">' . $label . '</label>';
         $field = '';
         switch ($typeLabel) {
             case 'text':
                 $tag_attr = ' class="form-control"';
                 $rexInput = rex_input::factory($typeLabel);
                 $rexInput->addAttributes($attrArray);
                 $rexInput->setAttribute('id', $id);
                 $rexInput->setAttribute('name', $name);
                 if ($dblength > 0) {
                     $rexInput->setAttribute('maxlength', $dblength);
                 }
                 if ($activeItem) {
                     $rexInput->setValue($activeItem->getValue($name));
                 } else {
                     $rexInput->setValue($defaultValue);
                 }
                 $field = $rexInput->getHtml();
                 $e = [];
                 $e['label'] = $label;
                 $e['field'] = $field;
                 $fragment = new rex_fragment();
                 $fragment->setVar('elements', [$e], false);
                 $field = $fragment->parse('core/form/form.php');
                 break;
             case 'checkbox':
                 // Beachte auch default values in multiple fields bei ADD.
                 // Im EDIT wurde dies bereits vorher gehandelt
                 if (!$activeItem) {
                     $defaultValue = explode('|', $defaultValue);
                 }
                 $name .= '[]';
             case 'radio':
                 $formElements = [];
                 $values = [];
                 if (rex_sql::getQueryType($params) == 'SELECT') {
                     $sql = rex_sql::factory();
                     $value_groups = $sql->getDBArray($params, [], PDO::FETCH_NUM);
                     foreach ($value_groups as $value_group) {
                         if (isset($value_group[1])) {
                             $values[$value_group[1]] = $value_group[0];
                         } else {
                             $values[$value_group[0]] = $value_group[0];
                         }
                     }
                 } else {
                     $value_groups = explode('|', $params);
                     foreach ($value_groups as $value_group) {
                         // check ob key:value paar
                         // und der wert beginnt nicht mit "translate:"
                         if (strpos($value_group, ':') !== false && strpos($value_group, 'translate:') !== 0) {
                             $temp = explode(':', $value_group, 2);
                             $values[$temp[0]] = rex_i18n::translate($temp[1]);
                         } else {
                             $values[$value_group] = rex_i18n::translate($value_group);
                         }
                     }
                 }
                 $oneValue = count($values) == 1;
                 $attrStr = '';
                 $classAdd = '';
                 $inline = false;
                 if (false !== ($key = array_search('inline', $attrArray))) {
                     $inline = true;
                     unset($attrArray[$key]);
                 }
                 foreach ($attrArray as $key => $value) {
                     if ($key == 'class') {
                         $classAdd = ' ' . $value;
                     } else {
                         $attrStr = ' ' . $key . '="' . $value . '"';
                     }
                 }
                 if (!$activeItem) {
                     $dbvalues = (array) $defaultValue;
                 }
                 foreach ($values as $key => $value) {
                     $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $id . $key);
                     // wenn man keine Werte angibt (Boolean Chkbox/Radio)
                     // Dummy Wert annehmen, damit an/aus unterscheidung funktioniert
                     if ($oneValue && $key == '') {
                         $key = 'true';
                     }
                     $selected = '';
                     if (in_array($key, $dbvalues)) {
                         $selected = ' checked="checked"';
                     }
                     $e = [];
                     if ($oneValue) {
                         $e['label'] = $label;
                     } else {
                         $e['label'] = '<label for="' . $id . '">' . htmlspecialchars($value) . '</label>';
                     }
                     $e['field'] = '<input type="' . $typeLabel . '" name="' . $name . '" value="' . htmlspecialchars($key) . '" id="' . $id . '" ' . $attrStr . $selected . ' />';
                     $formElements[] = $e;
                 }
                 $fragment = new rex_fragment();
                 $fragment->setVar('elements', $formElements, false);
                 $fragment->setVar('inline', $inline);
                 if ($typeLabel == 'radio') {
                     $field = $fragment->parse('core/form/radio.php');
                 } else {
                     if (!$oneValue) {
                         $fragment->setVar('grouped', true);
                     }
                     $field = $fragment->parse('core/form/checkbox.php');
                 }
                 if (!$oneValue) {
                     $e = [];
                     $e['label'] = $label;
                     $e['field'] = $field;
                     $fragment = new rex_fragment();
                     $fragment->setVar('elements', [$e], false);
                     $field = $fragment->parse('core/form/form.php');
                 }
                 break;
             case 'select':
                 $tag_attr = ' class="form-control"';
                 $select = new rex_select();
                 $select->setStyle('class="form-control"');
                 $select->setName($name);
                 $select->setId($id);
                 $multiple = false;
                 foreach ($attrArray as $attr_name => $attr_value) {
                     if (empty($attr_name)) {
                         continue;
                     }
                     $select->setAttribute($attr_name, $attr_value);
                     if ($attr_name == 'multiple') {
                         $multiple = true;
                         $select->setName($name . '[]');
                         $select->setMultiple();
                     }
                 }
                 // Beachte auch default values in multiple fields bei ADD.
                 // Im EDIT wurde dies bereits vorher gehandelt
                 if ($multiple && !$activeItem) {
                     $dbvalues = explode('|', $defaultValue);
                 }
                 // hier mit den "raw"-values arbeiten, da die rex_select klasse selbst escaped
                 $select->setSelected($dbvalues);
                 if (rex_sql::getQueryType($params) == 'SELECT') {
                     // Werte via SQL Laden
                     $select->addDBSqlOptions($params);
                 } else {
                     // Optionen mit | separiert
                     // eine einzelne Option kann mit key:value separiert werden
                     $values = [];
                     $value_groups = explode('|', $params);
                     foreach ($value_groups as $value_group) {
                         // check ob key:value paar
                         // und der wert beginnt nicht mit "translate:"
                         if (strpos($value_group, ':') !== false && strpos($value_group, 'translate:') !== 0) {
                             $temp = explode(':', $value_group, 2);
                             $values[$temp[0]] = rex_i18n::translate($temp[1]);
                         } else {
                             $values[$value_group] = rex_i18n::translate($value_group);
                         }
                     }
                     $select->addOptions($values);
                 }
                 $field .= $select->get();
                 $e = [];
                 $e['label'] = $label;
                 $e['field'] = $field;
                 $fragment = new rex_fragment();
                 $fragment->setVar('elements', [$e], false);
                 $field = $fragment->parse('core/form/form.php');
                 break;
             case 'date':
             case 'time':
             case 'datetime':
                 $tag_attr = ' class="form-control-date"';
                 $active = $dbvalues[0] != 0;
                 if ($dbvalues[0] == '') {
                     $dbvalues[0] = time();
                 }
                 $inputValue = [];
                 $inputValue['year'] = date('Y', $dbvalues[0]);
                 $inputValue['month'] = date('n', $dbvalues[0]);
                 $inputValue['day'] = date('j', $dbvalues[0]);
                 $inputValue['hour'] = date('G', $dbvalues[0]);
                 $inputValue['minute'] = date('i', $dbvalues[0]);
                 $rexInput = rex_input::factory($typeLabel);
                 $rexInput->addAttributes($attrArray);
                 $rexInput->setAttribute('id', $id);
                 $rexInput->setAttribute('name', $name);
                 $rexInput->setValue($inputValue);
                 $field = $rexInput->getHtml();
                 $checked = $active ? ' checked="checked"' : '';
                 $field .= '<input class="rex-metainfo-checkbox" type="checkbox" name="' . $name . '[active]" value="1"' . $checked . ' />';
                 $e = [];
                 $e['label'] = $label;
                 $e['field'] = $field;
                 $fragment = new rex_fragment();
                 $fragment->setVar('elements', [$e], false);
                 $field = $fragment->parse('core/form/form.php');
                 break;
             case 'textarea':
                 $tag_attr = ' class="form-control"';
                 $rexInput = rex_input::factory($typeLabel);
                 $rexInput->addAttributes($attrArray);
                 $rexInput->setAttribute('id', $id);
                 $rexInput->setAttribute('name', $name);
                 if ($activeItem) {
                     $rexInput->setValue($activeItem->getValue($name));
                 } else {
                     $rexInput->setValue($defaultValue);
                 }
                 $field = $rexInput->getHtml();
                 $e = [];
                 $e['label'] = $label;
                 $e['field'] = $field;
                 $fragment = new rex_fragment();
                 $fragment->setVar('elements', [$e], false);
                 $field = $fragment->parse('core/form/form.php');
                 break;
             case 'legend':
                 $tag = '';
                 $tag_attr = '';
                 $labelIt = false;
                 // tabindex entfernen, macht bei einer legend wenig sinn
                 $attr = preg_replace('@tabindex="[^"]*"@', '', $attr);
                 $field = '</fieldset><fieldset><legend id="' . $id . '"' . $attr . '>' . $label . '</legend>';
                 break;
             case 'REX_MEDIA_WIDGET':
                 $tag = 'div';
                 $tag_attr = ' class="rex-form-widget"';
                 $paramArray = rex_string::split($params);
                 $rexInput = rex_input::factory('mediabutton');
                 $rexInput->addAttributes($attrArray);
                 $rexInput->setButtonId($media_id);
                 $rexInput->setAttribute('name', $name);
                 $rexInput->setValue($dbvalues[0]);
                 if (isset($paramArray['category'])) {
                     $rexInput->setCategoryId($paramArray['category']);
                 }
                 if (isset($paramArray['types'])) {
                     $rexInput->setTypes($paramArray['types']);
                 }
                 if (isset($paramArray['preview'])) {
                     $rexInput->setPreview($paramArray['preview']);
                 }
                 $id = $rexInput->getAttribute('id');
                 $field = $rexInput->getHtml();
                 $e = [];
                 $e['label'] = $label;
                 $e['field'] = $field;
                 $fragment = new rex_fragment();
                 $fragment->setVar('elements', [$e], false);
                 $field = $fragment->parse('core/form/form.php');
                 ++$media_id;
                 break;
             case 'REX_MEDIALIST_WIDGET':
                 $tag = 'div';
                 $tag_attr = ' class="rex-form-widget"';
                 $paramArray = rex_string::split($params);
                 $name .= '[]';
                 $rexInput = rex_input::factory('medialistbutton');
                 $rexInput->addAttributes($attrArray);
                 $rexInput->setButtonId($mlist_id);
                 $rexInput->setAttribute('name', $name);
                 $rexInput->setValue($dbvalues[0]);
                 if (isset($paramArray['category'])) {
                     $rexInput->setCategoryId($paramArray['category']);
                 }
                 if (isset($paramArray['types'])) {
                     $rexInput->setTypes($paramArray['types']);
                 }
                 if (isset($paramArray['preview'])) {
                     $rexInput->setPreview($paramArray['preview']);
                 }
                 $id = $rexInput->getAttribute('id');
                 $field = $rexInput->getHtml();
                 $e = [];
                 $e['label'] = $label;
                 $e['field'] = $field;
                 $fragment = new rex_fragment();
                 $fragment->setVar('elements', [$e], false);
                 $field = $fragment->parse('core/form/form.php');
                 ++$mlist_id;
                 break;
             case 'REX_LINK_WIDGET':
                 $tag = 'div';
                 $tag_attr = ' class="rex-form-widget"';
                 $paramArray = rex_string::split($params);
                 $category = '';
                 if (isset($paramArray['category'])) {
                     $category = $paramArray['category'];
                 } elseif ($activeItem) {
                     $category = $activeItem->getValue('category_id');
                 }
                 $rexInput = rex_input::factory('linkbutton');
                 $rexInput->addAttributes($attrArray);
                 $rexInput->setButtonId($link_id);
                 $rexInput->setCategoryId($category);
                 $rexInput->setAttribute('name', $name);
                 $rexInput->setValue($dbvalues[0]);
                 $id = $rexInput->getAttribute('id');
                 $field = $rexInput->getHtml();
                 $e = [];
                 $e['label'] = $label;
                 $e['field'] = $field;
                 $fragment = new rex_fragment();
                 $fragment->setVar('elements', [$e], false);
                 $field = $fragment->parse('core/form/form.php');
                 ++$link_id;
                 break;
             case 'REX_LINKLIST_WIDGET':
                 $tag = 'div';
                 $tag_attr = ' class="rex-form-widget"';
                 $paramArray = rex_string::split($params);
                 $category = '';
                 if (isset($paramArray['category'])) {
                     $category = $paramArray['category'];
                 } elseif ($activeItem) {
                     $category = $activeItem->getValue('category_id');
                 }
                 $name .= '[]';
                 $rexInput = rex_input::factory('linklistbutton');
                 $rexInput->addAttributes($attrArray);
                 $rexInput->setButtonId($llist_id);
                 $rexInput->setCategoryId($category);
                 $rexInput->setAttribute('name', $name);
                 $rexInput->setValue(implode(',', $dbvalues));
                 $id = $rexInput->getAttribute('id');
                 $field = $rexInput->getHtml();
                 $e = [];
                 $e['label'] = $label;
                 $e['field'] = $field;
                 $fragment = new rex_fragment();
                 $fragment->setVar('elements', [$e], false);
                 $field = $fragment->parse('core/form/form.php');
                 ++$llist_id;
                 break;
             default:
                 // ----- EXTENSION POINT
                 list($field, $tag, $tag_attr, $id, $label, $labelIt) = rex_extension::registerPoint(new rex_extension_point('METAINFO_CUSTOM_FIELD', [$field, $tag, $tag_attr, $id, $label, $labelIt, 'values' => $dbvalues, 'rawvalues' => $dbvalues, 'type' => $typeLabel, 'sql' => $sqlFields]));
         }
         $s .= $this->renderFormItem($field, $tag, $tag_attr, $id, $label, $labelIt, $typeLabel);
     }
     return $s;
 }
Exemplo n.º 7
0
 $ctypes = isset($attributes['ctype']) ? $attributes['ctype'] : [];
 $modules = isset($attributes['modules']) ? $attributes['modules'] : [];
 $categories = isset($attributes['categories']) ? $attributes['categories'] : [];
 if (!is_array($modules)) {
     $modules = [];
 }
 if (!is_array($categories)) {
     $categories = [];
 }
 // modules[ctype_id][module_id];
 // modules[ctype_id]['all'];
 // Module ...
 $modul_select = new rex_select();
 $modul_select->setMultiple(true);
 $modul_select->setSize(10);
 $modul_select->setAttribute('class', 'form-control');
 $m_sql = rex_sql::factory();
 foreach ($m_sql->getArray('SELECT id, name FROM ' . rex::getTablePrefix() . 'module ORDER BY name') as $m) {
     $modul_select->addOption(rex_i18n::translate($m['name']), $m['id']);
 }
 // Kategorien
 $cat_select = new rex_category_select(false, false, false, false);
 $cat_select->setMultiple(true);
 $cat_select->setSize(10);
 $cat_select->setName('categories[]');
 $cat_select->setId('rex-id-categories-select');
 $cat_select->setAttribute('class', 'form-control');
 if (count($categories) > 0) {
     foreach ($categories as $c => $cc) {
         // typsicherer vergleich, weil (0 != "all") => false
         if ($c !== 'all') {
Exemplo n.º 8
0
$fragment = new rex_fragment();
$fragment->setVar('elements', $formElements, false);
$radios = $fragment->parse('core/form/radio.php');
$formElements = [];
$n = [];
$n['label'] = rex_i18n::msg('backup_export_select');
$n['field'] = $radios;
$formElements[] = $n;
$fragment = new rex_fragment();
$fragment->setVar('elements', $formElements, false);
$content .= $fragment->parse('core/form/form.php');
$tableSelect = new rex_select();
$tableSelect->setMultiple();
$tableSelect->setId('rex-form-exporttables');
$tableSelect->setName('EXPTABLES[]');
$tableSelect->setAttribute('class', 'form-control');
$tables = rex_sql::showTables();
foreach ($tables as $table) {
    $tableSelect->addOption($table, $table);
    if ($table != rex::getTable('user') && 0 === strpos($table, rex::getTablePrefix()) && 0 !== strpos($table, rex::getTablePrefix() . rex::getTempPrefix())) {
        $tableSelect->setSelected($table);
    }
}
$formElements = [];
$n = [];
$n['header'] = '<div id="rex-js-exporttype-sql-div">';
$n['label'] = '<label for="rex-form-exporttables">' . rex_i18n::msg('backup_export_select_tables') . '</label>';
$n['field'] = $tableSelect->get();
$n['footer'] = '</div>';
$formElements[] = $n;
// Vorhandene Exporte auslesen
Exemplo n.º 9
0
function rex_version_header($params)
{
    global $REX, $I18N;
    $return = "";
    $rex_version_article = $REX['LOGIN']->getSessionVar("rex_version_article");
    if (!is_array($rex_version_article)) {
        $rex_version_article = array();
    }
    $working_version_empty = TRUE;
    $gw = rex_sql::factory();
    $gw->setQuery('select * from ' . $REX['TABLE_PREFIX'] . 'article_slice where article_id=' . $params['article_id'] . ' and clang=' . $params['clang'] . ' and revision=1 LIMIT 1');
    if ($gw->getRows() > 0) {
        $working_version_empty = FALSE;
    }
    $revisions = array();
    $revisions[0] = $I18N->msg("version_liveversion");
    $revisions[1] = $I18N->msg("version_workingversion");
    $version_id = rex_request("rex_set_version", "int", "-1");
    if ($version_id === 0) {
        $rex_version_article[$params['article_id']] = 0;
    } elseif ($version_id == 1) {
        $rex_version_article[$params['article_id']] = 1;
    } elseif (!isset($rex_version_article[$params['article_id']])) {
        $rex_version_article[$params['article_id']] = 1;
    }
    $func = rex_request("rex_version_func", "string");
    switch ($func) {
        case "copy_work_to_live":
            if ($working_version_empty) {
                $return .= rex_warning($I18N->msg("version_warning_working_version_to_live"));
            } else {
                if (!$REX['USER']->hasPerm('version[only_working_version]')) {
                    require $REX['INCLUDE_PATH'] . '/addons/version/functions/function_rex_copyrevisioncontent.inc.php';
                    // rex_copyRevisionContent($article_id,$clang,$from_revision_id, $to_revision_id, $gc->getValue("id"),$delete_to_revision);
                    rex_copyRevisionContent($params['article_id'], $params['clang'], 1, 0, 0, TRUE);
                    $return .= rex_info($I18N->msg("version_info_working_version_to_live"));
                }
            }
            break;
        case "copy_live_to_work":
            require $REX['INCLUDE_PATH'] . '/addons/version/functions/function_rex_copyrevisioncontent.inc.php';
            // rex_copyRevisionContent($article_id,$clang,$from_revision_id, $to_revision_id, $gc->getValue("id"),$delete_to_revision);
            rex_copyRevisionContent($params['article_id'], $params['clang'], 0, 1, 0, TRUE);
            $return .= rex_info($I18N->msg("version_info_live_version_to_working"));
            break;
    }
    if ($REX['USER']->hasPerm('version[only_working_version]')) {
        $rex_version_article[$params['article_id']] = 1;
        unset($revisions[0]);
    }
    $REX['LOGIN']->setSessionVar("rex_version_article", $rex_version_article);
    $link = 'index.php?page=' . $params['page'] . '&article_id=' . $params['article_id'] . '&clang=' . $params['clang'];
    $return .= '
		<div id="rex-version-header" class="rex-toolbar rex-toolbar-has-form rex-version-revision-' . $rex_version_article[$params['article_id']] . '">
				<div class="rex-toolbar-content rex-version-header">

				<form action="index.php" method="post">
				<fieldset>
				<input type="hidden" name="page" value="' . $params['page'] . '" />
				<input type="hidden" name="mode" value="' . $params['mode'] . '" />
        <input type="hidden" name="article_id" value="' . $params['article_id'] . '" />
        <input type="hidden" name="clang" value="' . $params['clang'] . '" />
        <input type="hidden" name="ctype" value="' . $params['ctype'] . '" />
	';
    $s = new rex_select();
    foreach ($revisions as $k => $r) {
        $s->addOption($r, $k);
    }
    $s->setSelected($rex_version_article[$params['article_id']]);
    $s->setName('rex_set_version');
    $s->setId('rex-select-version-id');
    $s->setSize('1');
    $s->setAttribute('onchange', 'this.form.submit();');
    if ($REX['USER']->hasPerm('version[only_working_version]')) {
        $s->setDisabled();
    }
    $return .= '<ul class="rex-display-inline">';
    $return .= '<li class="rex-navi-first"><label for="rex-select-version-id">' . $I18N->msg('version') . ':</label> ' . $s->get() . '</li>';
    if ($REX['USER']->hasPerm('version[only_working_version]')) {
        if ($rex_version_article[$params['article_id']] > 0) {
            $return .= '<li><a href="' . $link . '&rex_version_func=copy_live_to_work">' . $I18N->msg('version_copy_from_liveversion') . '</a></li>';
            $return .= '<li><a href="/' . rex_getUrl($params['article_id'], $params['clang'], array("rex_version" => 1)) . '" target="_blank">' . $I18N->msg("version_preview") . '</a></li>';
        }
    } else {
        if ($rex_version_article[$params['article_id']] > 0) {
            if (!$working_version_empty) {
                $return .= '<li><a href="' . $link . '&rex_version_func=copy_work_to_live">' . $I18N->msg('version_working_to_live') . '</a></li>';
            }
            $return .= '<li><a href="../' . rex_getUrl($params['article_id'], $params['clang'], array("rex_version" => 1)) . '" target="_blank">' . $I18N->msg("version_preview") . '</a></li>';
        } else {
            $return .= '<li><a href="' . $link . '&rex_version_func=copy_live_to_work" onclick="return confirm(\'' . $I18N->msg('version_confirm_copy_live_to_workingversion') . '\');">' . $I18N->msg('version_copy_live_to_workingversion') . '</a></li>';
        }
    }
    $return .= '</ul>';
    $return .= '

					<noscript>
    			  <input type="submit" />
    			</noscript>
				</fieldset>
				</form>

			</div>
			<div class="rex-clearer"></div>

<style type="text/css">
  /* <![CDATA[ */
		#rex-version-header label { 
			font-weight: bold;
		}  
		#rex-version-header li { 
			margin-right: 15px;
		}
		div.rex-version-revision-0 {
			background-color:#bbddaa;
		}
		div.rex-version-revision-1 {
			background-color:#EFECD1;
		}
  /* ]]> */
</style>
			
		</div>
	';
    $params['slice_revision'] = $rex_version_article[$params['article_id']];
    return $return;
}
Exemplo n.º 10
0
    ?>
" name="lang_settings[<?php 
    echo $clangId;
    ?>
][special_chars_rewrite]" class="rex-form-text pipes" id="lang_settings_<?php 
    echo $clangId;
    ?>
_special_chars_rewrite">
				</p>
			</div>

			<?php 
    $inherit_from_clang_select = new rex_select();
    $inherit_from_clang_select->setSize(1);
    $inherit_from_clang_select->setName('lang_settings[' . $clangId . '][inherit_from_clang]');
    $inherit_from_clang_select->setAttribute('id', 'lang_settings_' . $clangId . '_inherit_from_clang');
    foreach ($REX['CLANG'] as $clangIdTemp => $clangName) {
        if (count($REX['CLANG']) == 1 || $clangIdTemp != $clangId) {
            $inherit_from_clang_select->addOption($clangName, $clangIdTemp);
        }
    }
    $inherit_from_clang_select->setSelected($inheritFromClang);
    ?>

	     <div class="rex-form-row" id="lang_settings_<?php 
    echo $clangId;
    ?>
_inherit_from_clang_row">
            <p class="rex-form-col-a rex-form-select">
              <label for="lang_settings_<?php 
    echo $clangId;
/**
 * Erstellt den nötigen HTML Code um ein Formular zu erweitern
 *
 * @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
 * @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt
 * @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt
 */
function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams)
{
    global $I18N;
    $s = '';
    // Startwert für MEDIABUTTON, MEDIALIST, LINKLIST
    $media_id = 1;
    $mlist_id = 1;
    $link_id = 1;
    $sqlFields->reset();
    for ($i = 0; $i < $sqlFields->getRows(); $i++) {
        // Umschliessendes Tag von Label und Formularelement
        $tag = 'p';
        $tag_attr = '';
        $name = $sqlFields->getValue('name');
        $title = $sqlFields->getValue('title');
        $params = $sqlFields->getValue('params');
        $typeLabel = $sqlFields->getValue('label');
        $attr = $sqlFields->getValue('attributes');
        $dbvalues = array('');
        if ($activeItem) {
            $dbvalues = explode('|+|', $activeItem->getValue($name));
        }
        if ($title != '') {
            $label = rex_translate($title);
        } else {
            $label = htmlspecialchars($name);
        }
        $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
        $attr .= rex_tabindex();
        $labelIt = true;
        $field = '';
        switch ($typeLabel) {
            case 'text':
                $field = '<input type="' . $sqlFields->getValue('label') . '" name="' . $name . '" value="' . $dbvalues[0] . '" id="' . $id . '" ' . $attr . ' />';
                break;
            case 'checkbox':
                $name .= '[]';
            case 'radio':
                $values = array();
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    $sql = new rex_sql();
                    $value_groups = $sql->getDBArray($params, MYSQL_NUM);
                    foreach ($value_groups as $value_group) {
                        if (isset($value_group[1])) {
                            $values[$value_group[1]] = $value_group[0];
                        } else {
                            $values[$value_group[0]] = $value_group[0];
                        }
                    }
                } else {
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        if (strpos($value_group, ':') !== false) {
                            $temp = explode(':', $value_group);
                            $values[$temp[0]] = $temp[1];
                        } else {
                            $values[$value_group] = $value_group;
                        }
                    }
                }
                //        if($epParams['extension_point'] != 'CAT_META_FORM_EDIT')
                //          $field .= '<span>'. $label .'</span>';
                $class = $typeLabel == 'radio' ? 'rex-rdo' : 'rex-chckbx';
                $oneValue = count($values) == 1;
                if (!$oneValue) {
                    $tag = '';
                    $labelIt = false;
                    $tag = 'div';
                    $tag_attr = ' class="rex-chckbxs rex-ptag"';
                    $field .= '<p>' . $label . '</p>';
                }
                foreach ($values as $key => $value) {
                    $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $id . $key);
                    // wenn man keine Werte angibt (Boolean Chkbox/Radio)
                    // Dummy Wert annehmen, damit an/aus unterscheidung funktioniert
                    if ($oneValue && $key == '') {
                        $key = 'true';
                    }
                    $selected = '';
                    if (in_array($key, $dbvalues)) {
                        $selected = ' checked="checked"';
                    }
                    if ($oneValue) {
                        $tag_attr = ' class="' . $class . '"';
                        $field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
                    } else {
                        $field .= '<p class="' . $class . '">' . "\n";
                        $field .= '<label for="' . $id . '"><span>' . htmlspecialchars($value) . '</span></label>';
                        $field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
                        $field .= '</p>' . "\n";
                    }
                }
                break;
            case 'select':
                $select = new rex_select();
                $select->setName($name);
                $select->setId($id);
                $select->setSelected($dbvalues);
                foreach (explode(' ', $attr) as $pair) {
                    if (strpos($pair, '=') === false) {
                        continue;
                    }
                    $temp = explode('=', $pair);
                    $select->setAttribute($temp[0], str_replace(array('"', "'"), '', $temp[1]));
                    if ($temp[0] == 'multiple') {
                        $select->setName($name . '[]');
                    }
                }
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    $select->addDBSqlOptions($params);
                } else {
                    $values = array();
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        if (strpos($value_group, ':') !== false) {
                            $temp = explode(':', $value_group);
                            $values[$temp[0]] = $temp[1];
                        } else {
                            $values[$value_group] = $value_group;
                        }
                    }
                    $select->addOptions($values);
                }
                $field .= $select->get();
                break;
            case 'datetime':
            case 'date':
                if ($dbvalues[0] == '') {
                    $dbvalues[0] = time();
                }
                $style = 'class="rex-fdate"';
                $yearStyle = 'class="rex-fdatey"';
                $yearSelect = new rex_select();
                $yearSelect->addOptions(range(2005, date('Y') + 2), true);
                $yearSelect->setName($name . '[year]');
                $yearSelect->setSize(1);
                $yearSelect->setId($id);
                $yearSelect->setStyle($yearStyle);
                $yearSelect->setSelected(date('Y', $dbvalues[0]));
                $monthSelect = new rex_select();
                $monthSelect->addOptions(range(1, 12), true);
                $monthSelect->setName($name . '[month]');
                $monthSelect->setSize(1);
                $monthSelect->setStyle($style);
                $monthSelect->setSelected(date('m', $dbvalues[0]));
                $daySelect = new rex_select();
                $daySelect->addOptions(range(1, 31), true);
                $daySelect->setName($name . '[day]');
                $daySelect->setSize(1);
                $daySelect->setStyle($style);
                $daySelect->setSelected(date('j', $dbvalues[0]));
                if ($typeLabel == 'datetime') {
                    $hourSelect = new rex_select();
                    $hourSelect->addOptions(range(1, 23), true);
                    $hourSelect->setName($name . '[hour]');
                    $hourSelect->setSize(1);
                    $hourSelect->setStyle($style);
                    $hourSelect->setSelected(date('G', $dbvalues[0]));
                    $minuteSelect = new rex_select();
                    $minuteSelect->addOptions(range(0, 59), true);
                    $minuteSelect->setName($name . '[minute]');
                    $minuteSelect->setSize(1);
                    $minuteSelect->setStyle($style);
                    $minuteSelect->setSelected(date('i', $dbvalues[0]));
                    $field = $daySelect->get() . $monthSelect->get() . $yearSelect->get() . '-' . $hourSelect->get() . $minuteSelect->get();
                } else {
                    $field = $daySelect->get() . $monthSelect->get() . $yearSelect->get();
                }
                break;
            case 'textarea':
                $field = '<textarea name="' . $name . '" id="' . $id . '" ' . $attr . ' cols="50" rows="6">' . $dbvalues[0] . '</textarea>';
                break;
            case 'REX_MEDIA_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $field = rex_var_media::getMediaButton($media_id);
                $field = str_replace('REX_MEDIA[' . $media_id . ']', $dbvalues[0], $field);
                $field = str_replace('MEDIA[' . $media_id . ']', $name, $field);
                $id = 'REX_MEDIA_' . $media_id;
                $media_id++;
                break;
            case 'REX_MEDIALIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $name .= '[]';
                $field = rex_var_media::getMediaListButton($mlist_id, implode(',', $dbvalues));
                $field = str_replace('MEDIALIST[' . $mlist_id . ']', $name, $field);
                $id = 'REX_MEDIALIST_' . $mlist_id;
                $mlist_id++;
                break;
            case 'REX_LINK_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $category = '';
                if ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $field = rex_var_link::getLinkButton($link_id, $dbvalues[0], $category);
                $field = str_replace('LINK[' . $link_id . ']', $name, $field);
                $id = 'LINK_' . $link_id;
                $link_id++;
                break;
        }
        $s .= rex_call_func($formatCallback, array($field, $tag, $tag_attr, $id, $label, $labelIt), false);
        $sqlFields->next();
    }
    return $s;
}
    }
} else {
    for ($i = 1; $i <= count($values); $i++) {
        echo '<li id="' . $i . '"><a data-toggle="tab" id="tab' . $i . '" href="#bereich' . $i . '"><i>B' . $i . '</i><span>Bereich ' . $i . '</span></a></li>' . PHP_EOL;
    }
}
echo '
    <li class="locked pull-right"><a data-toggle="tab" id="tabanleitung" href="#anleitung"><i class="rex-icon rex-icon-info"></i><span>Anleitung</span></a></li>
    <li class="locked pull-right"><a data-toggle="tab" id="tabweiteres" href="#weiteres"><i class="rex-icon rex-icon-metafuncs"></i><span>Weitere Einstellungen</span></a></li>
  </ul>
</div>' . PHP_EOL;
echo '<div class="tab-content">' . PHP_EOL;
for ($i = 1; $i <= count($values); $i++) {
    $ueberschrift_art = new rex_select();
    $ueberschrift_art->setName('REX_INPUT_VALUE[' . $i . '][ueberschrift_art]');
    $ueberschrift_art->setAttribute('class', 'ueberschriften');
    $ueberschrift_art->setSelected(isset($values[$i]['ueberschrift_art']) ? $values[$i]['ueberschrift_art'] : '');
    $ueberschrift_art->setSize(1);
    $ueberschrift_art->addOptions(array('h1' => 'Überschrift 1 (H1) - Nur einmal pro Seite verwenden', 'h2' => 'Überschrift 2 (H2)', 'h3' => 'Überschrift 3 (H3)', 'h4' => 'Überschrift 4 (H4)', 'faq' => 'FAQ Überschrift (Inhalt: Fließtext)'));
    $bildinformationen = new rex_select();
    $bildinformationen->setName('REX_INPUT_VALUE[' . $i . '][bildinformationen]');
    $bildinformationen->setSelected(isset($values[$i]['bildinformationen']) ? $values[$i]['bildinformationen'] : '');
    $bildinformationen->setSize(1);
    $bildinformationen->addOptions(array('nein' => 'nein', 'ja' => 'ja'));
    $bildposition = new rex_select();
    $bildposition->setName('REX_INPUT_VALUE[' . $i . '][bildposition]');
    $bildposition->setSelected(isset($values[$i]['bildposition']) ? $values[$i]['bildposition'] : '');
    $bildposition->setSize(1);
    $bildposition->addOptions(array('oben' => 'über dem Text', 'unten' => 'unter dem Text', 'nachueberschrift' => 'unter der Überschrift', 'nachteaser' => 'unter dem Teasertext'));
    $bildanpassen = new rex_select();
    $bildanpassen->setName('REX_INPUT_VALUE[' . $i . '][bildanpassen]');
Exemplo n.º 13
0
$func = rex_request('func', 'string');
// save settings
if ($func == 'update') {
    $thisPlugin = 'rex_globals';
    $settings = (array) rex_post('settings', 'array', array());
    rex_backend_utilities::replaceSettings($thisPlugin, $settings);
    rex_backend_utilities::updateSettingsFile($thisPlugin);
}
// templates
$sql = rex_sql::factory();
$sql->setQuery('select id, name from ' . $REX['TABLE_PREFIX'] . 'template order by name');
$templates = $sql->getArray();
$selectTemplates = new rex_select();
$selectTemplates->setName('settings[include_template_id]');
$selectTemplates->setAttribute('id', 'include_template_id');
$selectTemplates->setSize(1);
$selectTemplates->addOption('<' . $I18N->msg('rex_globals_none') . '>', '0');
foreach ($templates as $template) {
    $selectTemplates->addOption($template['name'], $template['id']);
}
$selectTemplates->setSelected($REX['ADDON']['rex_globals']['settings']['include_template_id']);
?>

<div class="rex-addon-output">
	<div class="rex-form">

		<h2 class="rex-hl2"><?php 
echo $I18N->msg('be_utilities_settings');
?>
</h2>
Exemplo n.º 14
0
 *
 * @package redaxo4
 * @version svn:$Id$
 */
$year_sel = new rex_select();
$year_sel->setSize(1);
$year_sel->setName('log[year]');
$year_sel->setId('log_year');
$year_sel->setAttribute('class', 'rex-form-select');
$year_sel->setAttribute('onchange', 'this.form.submit();');
$year_sel->setStyle('width: 100px');
$month_sel = new rex_select();
$month_sel->setSize(1);
$month_sel->setName('log[month]');
$month_sel->setId('log_month');
$month_sel->setAttribute('class', 'rex-form-select');
$month_sel->setAttribute('onchange', 'this.form.submit();');
$month_sel->setStyle('width: 100px');
$log = rex_request('log', 'array', array());
if (!isset($log['year']) || !$log['year']) {
    $log['year'] = date('Y');
}
if (!isset($log['month']) || !$log['month']) {
    $log['month'] = date('m');
}
$array = rex_cronjob_log::getYearMonthArray();
if (empty($array)) {
    echo '
    <div class="rex-toolbar">
      <div class="rex-toolbar-content">
        <strong>' . $I18N->msg('cronjob_no_log_files') . '</strong>
Exemplo n.º 15
0
    $sel_encoding->addOption($enc, $enc);
}
$sel_priority = new rex_select();
$sel_priority->setid('phpmailer-priority');
$sel_priority->setName('settings[priority]');
$sel_priority->setSize(1);
$sel_priority->setAttribute('class', 'form-control');
$sel_priority->setSelected($this->getConfig('priority'));
foreach ([0 => $this->i18n('disabled'), 1 => $this->i18n('high'), 3 => $this->i18n('normal'), 5 => $this->i18n('low')] as $no => $name) {
    $sel_priority->addOption($name, $no);
}
$sel_debug = new rex_select();
$sel_debug->setid('phpmailer-smtp_debug');
$sel_debug->setName('settings[smtp_debug]');
$sel_debug->setSize(1);
$sel_debug->setAttribute('class', 'form-control');
$sel_debug->setSelected($this->getConfig('smtp_debug'));
foreach ([0 => $this->i18n('smtp_debug_0'), 1 => $this->i18n('smtp_debug_1'), 2 => $this->i18n('smtp_debug_2'), 3 => $this->i18n('smtp_debug_3'), 4 => $this->i18n('smtp_debug_4')] as $no => $name) {
    $sel_debug->addOption($name, $no);
}
if ($message != '') {
    echo rex_view::success($message);
}
$content = '';
$content .= '<fieldset><legend>' . $this->i18n('email_options') . '</legend>';
$formElements = [];
$n = [];
$n['label'] = '<label for="phpmailer-fromname">' . $this->i18n('sender_name') . '</label>';
$n['field'] = '<input class="form-control" id="phpmailer-fromname" type="text" name="settings[fromname]" value="' . $this->getConfig('fromname') . '" />';
$formElements[] = $n;
$n = [];
$thumbsresize = true;
if (!OOAddon::isAvailable('image_resize')) {
    $thumbsresize = false;
}
// *************************************** KATEGORIEN CHECK UND AUSWAHL
// ***** kategorie auswahl
$db = new rex_sql();
$file_cat = $db->getArray('SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'file_category ORDER BY name ASC');
// ***** select bauen
$sel_media = new rex_select();
$sel_media->setId("rex_file_category");
$sel_media->setName("rex_file_category");
$sel_media->setSize(1);
$sel_media->setStyle('class="rex-form-select"');
$sel_media->setSelected($rex_file_category);
$sel_media->setAttribute('onchange', 'this.form.submit();');
$sel_media->addOption($I18N->msg('pool_kats_no'), "0");
$mediacat_ids = array();
if ($rootCats = OOMediaCategory::getRootCategories()) {
    foreach ($rootCats as $rootCat) {
        rex_mediapool_addMediacatOptions($sel_media, $rootCat, $mediacat_ids);
    }
}
// ----- EXTENSION POINT
echo rex_register_extension_point('PAGE_MEDIAPOOL_HEADER', '', array('subpage' => $subpage, 'category_id' => $rex_file_category));
// ***** formular
$cat_out = '<div class="rex-form" id="rex-form-mediapool-selectcategory">
              <form action="index.php" method="post">
                <fieldset class="rex-form-col-1">
                  <legend>' . $I18N->msg('pool_select_cat') . '</legend>
                  
Exemplo n.º 17
0
$sel_be_sprache->addOption('default', '');
$saveLocale = rex_i18n::getLocale();
$langs = [];
foreach (rex_i18n::getLocales() as $locale) {
    rex_i18n::setLocale($locale, false);
    // Locale nicht neu setzen
    $sel_be_sprache->addOption(rex_i18n::msg('lang'), $locale);
}
rex_i18n::setLocale($saveLocale, false);
$userperm_be_sprache = rex_request('userperm_be_sprache', 'string');
// ----- welche startseite
$sel_startpage = new rex_select();
$sel_startpage->setSize(1);
$sel_startpage->setName('userperm_startpage');
$sel_startpage->setId('rex-user-perm-startpage');
$sel_startpage->setAttribute('class', 'form-control');
$sel_startpage->addOption('default', '');
$startpages = [];
foreach (rex_be_controller::getPages() as $page => $pageObj) {
    /* @var $pageObj rex_be_page */
    if ($pageObj->hasNavigation() && !$pageObj->isHidden()) {
        $startpages[$page] = $pageObj->getTitle();
    }
}
asort($startpages);
$sel_startpage->addOptions($startpages);
$userperm_startpage = rex_request('userperm_startpage', 'string');
// --------------------------------- Title
// --------------------------------- FUNCTIONS
$FUNC_UPDATE = '';
$FUNC_APPLY = '';
Exemplo n.º 18
0
     case 1:
     case 2:
     case 3:
     case 4:
         $dbchecked[$createdb] = ' checked="checked"';
         break;
     default:
         $dbchecked[0] = ' checked="checked"';
 }
 // Vorhandene Exporte auslesen
 $sel_export = new rex_select();
 $sel_export->setName('import_name');
 $sel_export->setId('rex-form-import-name');
 $sel_export->setSize(1);
 $sel_export->setStyle('class="form-control rex-js-import-name"');
 $sel_export->setAttribute('onclick', 'checkInput(\'createdb_3\')');
 $export_dir = rex_backup::getDir();
 $exports_found = false;
 if (is_dir($export_dir)) {
     if ($handle = opendir($export_dir)) {
         $export_archives = [];
         $export_sqls = [];
         while (($file = readdir($handle)) !== false) {
             if ($file == '.' || $file == '..') {
                 continue;
             }
             $isSql = substr($file, strlen($file) - 4) == '.sql';
             $isArchive = substr($file, strlen($file) - 7) == '.tar.gz';
             if ($isSql) {
                 // cut .sql
                 $export_sqls[] = substr($file, 0, -4);
Exemplo n.º 19
0
    $addons = rex_install_packages::getMyPackages();
} catch (rex_functional_exception $e) {
    echo rex_view::error($e->getMessage());
    $addonkey = '';
}
if ($addonkey && isset($addons[$addonkey])) {
    $addon = $addons[$addonkey];
    $file_id = rex_request('file', 'string');
    if ($file_id) {
        $new = $file_id == 'new';
        $file = $new ? ['version' => '', 'description' => '', 'status' => 1, 'redaxo_versions' => ['5.0.x']] : $addon['files'][$file_id];
        $newVersion = rex_addon::get($addonkey)->getVersion();
        $redaxo_select = new rex_select();
        $redaxo_select->setName('upload[redaxo][]');
        $redaxo_select->setId('rex-install-packages-upload-redaxo');
        $redaxo_select->setAttribute('class', 'form-control');
        $redaxo_select->setSize(4);
        $redaxo_select->setMultiple(true);
        $redaxo_select->addOption('5.0.x', '5.0.x');
        $redaxo_select->setSelected($file['redaxo_versions']);
        $uploadCheckboxDisabled = '';
        $hiddenField = '';
        if ($new || !rex_addon::exists($addonkey)) {
            $uploadCheckboxDisabled = ' disabled="disabled"';
            $hiddenField = '<input type="hidden" name="upload[upload_file]" value="' . (int) $new . '" />';
        }
        $panel = '<fieldset>';
        $formElements = [];
        $n = [];
        $n['label'] = '<label for="rex-js-install-packages-upload-version">' . $this->i18n('version') . '</label>';
        $n['field'] = '<p class="form-control-static" id="rex-js-install-packages-upload-version">' . ($new ? $newVersion : $file['version']) . '</p>
Exemplo n.º 20
0
/**
 * Erstellt den nötigen HTML Code um ein Formular zu erweitern
 *
 * @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
 * @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt
 * @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt
 */
function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams)
{
    global $I18N, $REX;
    $s = '';
    // Startwert für MEDIABUTTON, MEDIALIST, LINKLIST zähler
    $media_id = 1;
    $mlist_id = 1;
    $link_id = 1;
    $llist_id = 1;
    $sqlFields->reset();
    for ($i = 0; $i < $sqlFields->getRows(); $i++, $sqlFields->next()) {
        // Umschliessendes Tag von Label und Formularelement
        $tag = 'p';
        $tag_attr = '';
        $name = $sqlFields->getValue('name');
        $title = $sqlFields->getValue('title');
        $params = $sqlFields->getValue('params');
        $typeLabel = $sqlFields->getValue('label');
        $attr = $sqlFields->getValue('attributes');
        $dblength = $sqlFields->getValue('dblength');
        $restrictions = $sqlFields->getValue('restrictions');
        $attr .= rex_tabindex();
        $attrArray = rex_split_string($attr);
        if (isset($attrArray['perm'])) {
            if (!$REX['USER']->hasPerm($attrArray['perm'])) {
                continue;
            }
            unset($attrArray['perm']);
        }
        $defaultValue = $sqlFields->getValue('default');
        if ($activeItem) {
            $itemValue = $activeItem->getValue($name);
            if (strpos($itemValue, '|+|') !== false) {
                // Alte notation mit |+| als Trenner
                $dbvalues = explode('|+|', $activeItem->getValue($name));
            } else {
                // Neue Notation mit | als Trenner
                $dbvalues = explode('|', $activeItem->getValue($name));
            }
        } else {
            $dbvalues = (array) $sqlFields->getValue('default');
        }
        if ($title != '') {
            $label = rex_translate($title);
        } else {
            $label = htmlspecialchars($name);
        }
        $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
        $labelIt = true;
        $field = '';
        switch ($typeLabel) {
            case 'text':
                $tag_attr = ' class="rex-form-text"';
                $rexInput = rex_input::factory($typeLabel);
                $rexInput->addAttributes($attrArray);
                $rexInput->setAttribute('id', $id);
                $rexInput->setAttribute('name', $name);
                if ($dblength > 0) {
                    $rexInput->setAttribute('maxlength', $dblength);
                }
                if ($activeItem) {
                    $rexInput->setValue($activeItem->getValue($name));
                } else {
                    $rexInput->setValue($defaultValue);
                }
                $field = $rexInput->getHtml();
                break;
            case 'checkbox':
                // Beachte auch default values in multiple fields bei ADD.
                // Im EDIT wurde dies bereits vorher gehandelt
                if (!$activeItem) {
                    $defaultValue = explode('|', $defaultValue);
                }
                $name .= '[]';
            case 'radio':
                $values = array();
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    $sql = rex_sql::factory();
                    $value_groups = $sql->getDBArray($params, MYSQL_NUM);
                    foreach ($value_groups as $value_group) {
                        if (isset($value_group[1])) {
                            $values[$value_group[1]] = $value_group[0];
                        } else {
                            $values[$value_group[0]] = $value_group[0];
                        }
                    }
                } else {
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        // check ob key:value paar
                        // und der wert beginnt nicht mit "translate:"
                        if (strpos($value_group, ':') !== false && strpos($value_group, 'translate:') !== 0) {
                            $temp = explode(':', $value_group, 2);
                            $values[$temp[0]] = rex_translate($temp[1]);
                        } else {
                            $values[$value_group] = rex_translate($value_group);
                        }
                    }
                }
                $class_s = $typeLabel;
                $class_p = $typeLabel == 'radio' ? 'radios' : 'checkboxes';
                $oneValue = count($values) == 1;
                if (!$oneValue) {
                    $labelIt = false;
                    $tag = 'div';
                    $tag_attr = ' class="rex-form-col-a rex-form-' . $class_p . '"';
                    $field .= '<p class="rex-form-label">' . $label . '</p><div class="rex-form-' . $class_p . '-wrapper">';
                }
                $attrStr = '';
                $classAdd = '';
                foreach ($attrArray as $key => $value) {
                    if ($key == 'class') {
                        $classAdd = ' ' . $value;
                    } else {
                        $attrStr = ' ' . $key . '="' . $value . '"';
                    }
                }
                if (!$activeItem) {
                    $dbvalues = (array) $defaultValue;
                }
                foreach ($values as $key => $value) {
                    $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $id . $key);
                    // wenn man keine Werte angibt (Boolean Chkbox/Radio)
                    // Dummy Wert annehmen, damit an/aus unterscheidung funktioniert
                    if ($oneValue && $key == '') {
                        $key = 'true';
                    }
                    $selected = '';
                    if (in_array($key, $dbvalues)) {
                        $selected = ' checked="checked"';
                    }
                    if ($oneValue) {
                        $tag_attr = ' class="rex-form-col-a rex-form-' . $class_s . $classAdd . '"';
                        $field .= '<input class="rex-form-' . $class_s . '" type="' . $typeLabel . '" name="' . $name . '" value="' . htmlspecialchars($key) . '" id="' . $id . '" ' . $attrStr . $selected . ' />' . "\n";
                    } else {
                        $field .= '<p class="rex-form-' . $class_s . ' rex-form-label-right' . $classAdd . '">' . "\n";
                        $field .= '<input class="rex-form-' . $class_s . '" type="' . $typeLabel . '" name="' . $name . '" value="' . htmlspecialchars($key) . '" id="' . $id . '" ' . $attrStr . $selected . ' />' . "\n";
                        $field .= '<label for="' . $id . '">' . htmlspecialchars($value) . '</label>';
                        $field .= '</p>' . "\n";
                    }
                }
                if (!$oneValue) {
                    $field .= '</div>';
                }
                break;
            case 'select':
                $tag_attr = ' class="rex-form-select"';
                $select = new rex_select();
                $select->setStyle('class="rex-form-select"');
                $select->setName($name);
                $select->setId($id);
                $multiple = false;
                foreach ($attrArray as $attr_name => $attr_value) {
                    if (empty($attr_name)) {
                        continue;
                    }
                    $select->setAttribute($attr_name, $attr_value);
                    if ($attr_name == 'multiple') {
                        $multiple = true;
                        $select->setName($name . '[]');
                    }
                }
                // Beachte auch default values in multiple fields bei ADD.
                // Im EDIT wurde dies bereits vorher gehandelt
                if ($multiple && !$activeItem) {
                    $dbvalues = explode('|', $defaultValue);
                }
                // hier mit den "raw"-values arbeiten, da die rex_select klasse selbst escaped
                $select->setSelected($dbvalues);
                if (!$multiple) {
                    $select->setSize(1);
                }
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    // Werte via SQL Laden
                    $select->addDBSqlOptions($params);
                } else {
                    // Optionen mit | separiert
                    // eine einzelne Option kann mit key:value separiert werden
                    $values = array();
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        // check ob key:value paar
                        // und der wert beginnt nicht mit "translate:"
                        if (strpos($value_group, ':') !== false && strpos($value_group, 'translate:') !== 0) {
                            $temp = explode(':', $value_group, 2);
                            $values[$temp[0]] = rex_translate($temp[1]);
                        } else {
                            $values[$value_group] = rex_translate($value_group);
                        }
                    }
                    $select->addOptions($values);
                }
                $field .= $select->get();
                break;
            case 'date':
            case 'time':
            case 'datetime':
                $tag_attr = ' class="rex-form-select-date"';
                $active = $dbvalues[0] != 0;
                if ($dbvalues[0] == '') {
                    $dbvalues[0] = time();
                }
                $inputValue = array();
                $inputValue['year'] = date('Y', $dbvalues[0]);
                $inputValue['month'] = date('m', $dbvalues[0]);
                $inputValue['day'] = date('j', $dbvalues[0]);
                $inputValue['hour'] = date('G', $dbvalues[0]);
                $inputValue['minute'] = date('i', $dbvalues[0]);
                $rexInput = rex_input::factory($typeLabel);
                $rexInput->addAttributes($attrArray);
                $rexInput->setAttribute('id', $id);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue($inputValue);
                $field = $rexInput->getHtml();
                $checked = $active ? ' checked="checked"' : '';
                $field .= '<input class="rex-form-select-checkbox rex-metainfo-checkbox" type="checkbox" name="' . $name . '[active]" value="1"' . $checked . ' />';
                break;
            case 'textarea':
                $tag_attr = ' class="rex-form-textarea"';
                $rexInput = rex_input::factory($typeLabel);
                $rexInput->addAttributes($attrArray);
                $rexInput->setAttribute('id', $id);
                $rexInput->setAttribute('name', $name);
                if ($activeItem) {
                    $rexInput->setValue($activeItem->getValue($name));
                } else {
                    $rexInput->setValue($defaultValue);
                }
                $field = $rexInput->getHtml();
                break;
            case 'legend':
                $tag = '';
                $tag_attr = '';
                $labelIt = false;
                // tabindex entfernen, macht bei einer legend wenig sinn
                $attr = preg_replace('@tabindex="[^"]*"@', '', $attr);
                $field = '</div></fieldset><fieldset class="rex-form-col-1"><legend id="' . $id . '"' . $attr . '>' . $label . '</legend><div class="rex-form-wrapper">';
                break;
            case 'REX_MEDIA_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-form-widget"';
                $paramArray = rex_split_string($params);
                $rexInput = rex_input::factory('mediabutton');
                $rexInput->addAttributes($attrArray);
                $rexInput->setButtonId($media_id);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue($dbvalues[0]);
                if (isset($paramArray['category'])) {
                    $rexInput->setCategoryId($paramArray['category']);
                }
                if (isset($paramArray['types'])) {
                    $rexInput->setTypes($paramArray['types']);
                }
                if (isset($paramArray['preview'])) {
                    $rexInput->setPreview($paramArray['preview']);
                }
                $id = $rexInput->getAttribute('id');
                $field = $rexInput->getHtml();
                $media_id++;
                break;
            case 'REX_MEDIALIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-form-widget"';
                $paramArray = rex_split_string($params);
                $name .= '[]';
                $rexInput = rex_input::factory('medialistbutton');
                $rexInput->addAttributes($attrArray);
                $rexInput->setButtonId($mlist_id);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue($dbvalues[0]);
                if (isset($paramArray['category'])) {
                    $rexInput->setCategoryId($paramArray['category']);
                }
                if (isset($paramArray['types'])) {
                    $rexInput->setTypes($paramArray['types']);
                }
                if (isset($paramArray['preview'])) {
                    $rexInput->setPreview($paramArray['preview']);
                }
                $id = $rexInput->getAttribute('id');
                $field = $rexInput->getHtml();
                $mlist_id++;
                break;
            case 'REX_LINK_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-form-widget"';
                $paramArray = rex_split_string($params);
                $category = '';
                if (isset($paramArray['category'])) {
                    $category = $paramArray['category'];
                } elseif ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $rexInput = rex_input::factory('linkbutton');
                $rexInput->addAttributes($attrArray);
                $rexInput->setButtonId($link_id);
                $rexInput->setCategoryId($category);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue($dbvalues[0]);
                $id = $rexInput->getAttribute('id');
                $field = $rexInput->getHtml();
                $link_id++;
                break;
            case 'REX_LINKLIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-form-widget"';
                $paramArray = rex_split_string($params);
                $category = '';
                if (isset($paramArray['category'])) {
                    $category = $paramArray['category'];
                } elseif ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $name .= '[]';
                $rexInput = rex_input::factory('linklistbutton');
                $rexInput->addAttributes($attrArray);
                $rexInput->setButtonId($llist_id);
                $rexInput->setCategoryId($category);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue(implode(',', $dbvalues));
                $id = $rexInput->getAttribute('id');
                $field = $rexInput->getHtml();
                $llist_id++;
                break;
            default:
                // ----- EXTENSION POINT
                list($field, $tag, $tag_attr, $id, $label, $labelIt) = rex_register_extension_point('A62_CUSTOM_FIELD', array($field, $tag, $tag_attr, $id, $label, $labelIt, 'values' => $dbvalues, 'rawvalues' => $dbvalues, 'type' => $typeLabel, 'sql' => $sqlFields));
        }
        $s .= rex_call_func($formatCallback, array($field, $tag, $tag_attr, $id, $label, $labelIt, $typeLabel), false);
    }
    return $s;
}
    function enterObject(&$email_elements, &$sql_elements, &$warning, &$form_output, $send = 0)
    {
        $day = date("d");
        $month = date("m");
        $year = date("Y");
        $hour = date("H");
        $min = date("i");
        $sec = 0;
        if (!is_array($this->getValue()) && strlen($this->getValue()) == 19) {
            if ($a = explode(" ", $this->getValue())) {
                if ($d = explode("-", $a[0])) {
                    $year = (int) $d[0];
                    $month = (int) $d[1];
                    $day = (int) $d[2];
                }
                if (isset($a[1])) {
                    if ($d = explode(":", $a[1])) {
                        $hour = (int) $d[0];
                        $min = (int) $d[1];
                        $sec = (int) $d[2];
                    }
                }
            }
        }
        $formname = 'FORM[' . $this->params["form_name"] . '][el_' . $this->id . ']';
        $twarning = "";
        if (!checkdate($month, $day, $year) && $send == 1) {
            $twarning = 'border:1px solid #f99; background-color:#f9f3f3;';
            $warning[] = "Datum ist falsch";
        }
        $isodatum = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year, $month, $day, $hour, $min, 0);
        $email_elements[$this->getName()] = $isodatum;
        $sql_elements[$this->getName()] = $isodatum;
        $out = "";
        $out .= '
		<p class="form_select_datetime" id="' . $this->getHTMLId() . '">
					<label class="select" for="el_' . $this->getId() . '" >' . $this->elements[2] . '</label>';
        $dsel = new rex_select();
        $dsel->setName($formname . '[day]');
        $dsel->setStyle($twarning);
        $dsel->setAttribute('class', 'formdate-day');
        $dsel->setId('el_' . $this->id . '');
        $dsel->setSize(1);
        // $dsel->addOption("TT","0");
        for ($i = 1; $i < 32; $i++) {
            $dsel->addOption($i, $i);
        }
        $dsel->setSelected($day);
        $out .= '<div class="day"><span>Tag:</span>' . $dsel->get() . '</div>';
        $msel = new rex_select();
        $msel->setName($formname . '[month]');
        $msel->setStyle($twarning);
        $msel->setAttribute('class', 'formdate-month');
        $msel->setId('el_' . $this->id . '_month');
        $msel->setSize(1);
        // $msel->addOption("MM","0");
        for ($i = 1; $i < 13; $i++) {
            $msel->addOption($i, $i);
        }
        $msel->setSelected($month);
        $out .= '<div class="month"><span>Monat:</span>' . $msel->get() . '</div>';
        $y = explode(",", $this->elements[3]);
        $year_start = (int) @$y[0];
        $year_end = (int) @$y[1];
        if ($year_start == 0) {
            $year_start = date("Y") - 5;
        }
        if ($year_end == 0) {
            $year_start = date("Y") + 5;
        }
        if ($year_end < $year_start) {
            $year_end = $year_start;
        }
        $ysel = new rex_select();
        $ysel->setName($formname . '[year]');
        $ysel->setStyle($twarning);
        $ysel->setAttribute('class', 'formdate-year');
        $ysel->setId('el_' . $this->id . '_year');
        $ysel->setSize(1);
        // $ysel->addOption("YYYY","0");
        for ($i = $year_start; $i <= $year_end; $i++) {
            $ysel->addOption($i, $i);
        }
        $ysel->setSelected($year);
        $out .= '<div class="year"><span>Jahr:</span>' . $ysel->get() . '</div>';
        $hsel = new rex_select();
        $hsel->setName($formname . '[hour]');
        $hsel->setStyle($twarning);
        $hsel->setAttribute('class', 'formdate-hour');
        $hsel->setId('el_' . $this->id . '_hour');
        $hsel->setSize(1);
        // $hsel->addOption("HH","00");
        for ($i = 0; $i < 24; $i++) {
            $hsel->addOption(str_pad($i, 2, '0', STR_PAD_LEFT), str_pad($i, 2, '0', STR_PAD_LEFT));
        }
        $hsel->setSelected($hour);
        $out .= '<div class="hour"><span>Stunde:</span>' . $hsel->get() . 'h</div>';
        $msel = new rex_select();
        $msel->setName($formname . '[min]');
        $msel->setStyle($twarning);
        $msel->setAttribute('class', 'formdate-minute');
        $msel->setId('el_' . $this->id . '_min');
        $msel->setSize(1);
        // $msel->addOption("MM","0");
        $mmm = array();
        if (isset($this->elements[4]) && $this->elements[4] != "") {
            $mmm = explode(",", trim($this->elements[4]));
        }
        if (count($mmm) > 0) {
            foreach ($mmm as $m) {
                $msel->addOption($m, $m);
            }
        } else {
            for ($i = 0; $i < 61; $i++) {
                $msel->addOption(str_pad($i, 2, '0', STR_PAD_LEFT), str_pad($i, 2, '0', STR_PAD_LEFT));
            }
        }
        $msel->setSelected($min);
        $out .= '<div class="minute"><span>Minute:</span>' . $msel->get() . 'm</div>';
        $out .= '</p>';
        $form_output[] = $out;
    }
Exemplo n.º 22
0
					</div>
					
					<?php 
if (OOAddon::isActivated('multinewsletter')) {
    ?>
					<div class="rex-form-row rex-form-element-v1">
						<p class="rex-form-text">
							<label for="multinewsletter_group"><?php 
    echo $I18N_KURSE->msg('multinewsletter_gruppe');
    ?>
</label>
							<?php 
    require_once $REX['INCLUDE_PATH'] . '/addons/multinewsletter/classes/class.multinewsletter_group.inc.php';
    $groups = new rex_select();
    $groups->setSize(1);
    $groups->setAttribute('class', 'myrex_select');
    $groups->addOption($I18N_KURSE->msg('multinewsletter_nicht_anmelden'), '0');
    $newsletter_groups = MultinewsletterGroupList::getAll($REX['TABLE_PREFIX']);
    foreach ($newsletter_groups as $group) {
        $groups->addOption($group->name, $group->group_id);
    }
    $groups->setSelected($REX['ADDON']['d2u_kurse']['settings']['multinewsletter_group']);
    $groups->setAttribute('id', 'multinewsletter_group');
    $groups->setName('settings[multinewsletter_group]');
    print $groups->get();
    ?>
						</p>
					</div>
					<?php 
}
?>
Exemplo n.º 23
0
    $sel_smtpsecure->addOption($name, $type);
}
$sel_encoding = new rex_select();
$sel_encoding->setId('phpmailer-encoding');
$sel_encoding->setName('settings[encoding]');
$sel_encoding->setSize(1);
$sel_encoding->setAttribute('class', 'form-control');
$sel_encoding->setSelected($this->getConfig('encoding'));
foreach (['7bit', '8bit', 'binary', 'base64', 'quoted-printable'] as $enc) {
    $sel_encoding->addOption($enc, $enc);
}
$sel_priority = new rex_select();
$sel_priority->setid('phpmailer-priority');
$sel_priority->setName('settings[priority]');
$sel_priority->setSize(1);
$sel_priority->setAttribute('class', 'form-control');
$sel_priority->setSelected($this->getConfig('priority'));
foreach ([1 => $this->i18n('high'), 3 => $this->i18n('normal'), 5 => $this->i18n('low')] as $no => $name) {
    $sel_priority->addOption($name, $no);
}
if ($message != '') {
    echo rex_view::success($message);
}
$content = '';
$content .= '<fieldset><legend>' . $this->i18n('email_options') . '</legend>';
$formElements = [];
$n = [];
$n['label'] = '<label for="phpmailer-fromname">' . $this->i18n('sender_name') . '</label>';
$n['field'] = '<input class="form-control" id="phpmailer-fromname" type="text" name="settings[fromname]" value="' . $this->getConfig('fromname') . '" />';
$formElements[] = $n;
$n = [];
Exemplo n.º 24
0
            <div class="rex-form">
                <form action="index.php" method="get" class="rex-fl-lft" style="margin-left:5px">
                    <fieldset>
                        <input type="hidden" name="page" value="<?php 
    print rex_request('page');
    ?>
" />
                        <input type="hidden" name="subpage" value="<?php 
    print rex_request('subpage');
    ?>
" />
                        <label for="filter">Filter:</label> &nbsp;
                        <?php 
    $select = new rex_select();
    $select->setName('filter');
    $select->setAttribute('onchange', 'this.form.submit();');
    $select->setSize(1);
    $select->setMultiple(false);
    $select->setStyle("width:250px;");
    $select->addOption("Alle anzeigen", 999);
    $select->addOption("nur News, die den Status \"online\" haben", 101);
    $select->addOption("nur News, die den Status \"auf Startseite\" haben", 102);
    $qry = 'SELECT id, name from ' . TBL_NEWS_CATS;
    $sql = new rex_sql();
    $data = $sql->getArray($qry);
    if (is_array($data) && sizeof($data) > 0) {
        foreach ($data as $row) {
            $select->addOption("nur aus " . $row['name'], $row['id']);
        }
    }
    if (sizeof($REX['CLANG']) > 1) {
 function enterObject(&$email_elements, &$sql_elements, &$warning, &$form_output, $send = 0)
 {
     $hour = date("H");
     $min = date("i");
     $sec = 0;
     if (!is_array($this->getValue()) && strlen($this->getValue()) == 8) {
         if ($d = explode(":", $this->getValue())) {
             $hour = (int) $d[0];
             $min = (int) $d[1];
             $sec = (int) $d[2];
         }
     }
     $formname = 'FORM[' . $this->params["form_name"] . '][el_' . $this->id . ']';
     $isotime = sprintf("%02d:%02d:%02d", $hour, $min, $sec);
     $email_elements[$this->getName()] = $isotime;
     $sql_elements[$this->getName()] = $isotime;
     $out = "";
     $out .= '
 <p class="form_select_time"  id="' . $this->getHTMLId() . '">
       <label class="select" for="el_' . $this->getId() . '" >' . $this->elements[2] . '</label>';
     $hsel = new rex_select();
     $hsel->setName($formname . '[hour]');
     $hsel->setAttribute('class', 'formdate-hour');
     $hsel->setId('el_' . $this->id . '_hour');
     $hsel->setSize(1);
     // $hsel->addOption("HH","00");
     $von_h = 0;
     $bis_h = 24;
     if (isset($this->elements[4]) && trim($this->elements[4]) != "") {
         if ($a = explode(",", $this->elements[4])) {
             $von_h = (int) $a[0];
             $bis_h = (int) $a[1];
         }
     }
     if ($von_h < 0 || $von_h > 23) {
         $von_h = 0;
     }
     if ($bis_h < 1 || $bis_h > 23) {
         $bis_h = 23;
     }
     for ($i = 0; $i < 24; $i++) {
         $hsel->addOption(str_pad($i, 2, '0', STR_PAD_LEFT), str_pad($i, 2, '0', STR_PAD_LEFT));
     }
     $hsel->setSelected($hour);
     $out .= '<div class="hour"><span>Stunde:</span>' . $hsel->get() . 'h</div>';
     $msel = new rex_select();
     $msel->setName($formname . '[min]');
     $msel->setAttribute('class', 'formdate-minute');
     $msel->setId('el_' . $this->id . '_min');
     $msel->setSize(1);
     // $msel->addOption("MM","0");
     $mmm = array();
     if (isset($this->elements[4]) && trim($this->elements[4]) != "") {
         $mmm = explode(",", trim($this->elements[4]));
     }
     if (count($mmm) > 0) {
         foreach ($mmm as $m) {
             $msel->addOption($m, $m);
         }
     } else {
         for ($i = 0; $i < 61; $i++) {
             $msel->addOption(str_pad($i, 2, '0', STR_PAD_LEFT), str_pad($i, 2, '0', STR_PAD_LEFT));
         }
     }
     $msel->setSelected($min);
     $out .= '<div class="minute"><span>Minute:</span>' . $msel->get() . 'm</div>';
     $out .= '</p>';
     $form_output[] = $out;
 }
/**
 * Erstellt den nötigen HTML Code um ein Formular zu erweitern
 *
 * @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
 * @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt
 * @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt
 */
function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams)
{
    global $I18N;
    $s = '';
    // Startwert für MEDIABUTTON, MEDIALIST, LINKLIST zähler
    $media_id = 1;
    $mlist_id = 1;
    $link_id = 1;
    $llist_id = 1;
    $sqlFields->reset();
    for ($i = 0; $i < $sqlFields->getRows(); $i++) {
        // Umschliessendes Tag von Label und Formularelement
        $tag = 'p';
        $tag_attr = '';
        $name = $sqlFields->getValue('name');
        $title = $sqlFields->getValue('title');
        $params = $sqlFields->getValue('params');
        $typeLabel = $sqlFields->getValue('label');
        $attr = $sqlFields->getValue('attributes');
        $dblength = $sqlFields->getValue('dblength');
        $dbvalues = array(htmlspecialchars($sqlFields->getValue('default')));
        $dbvalues_esc = $dbvalues;
        if ($activeItem) {
            $itemValue = $activeItem->getValue($name);
            if (strpos($itemValue, '|+|') !== false) {
                // Alte notation mit |+| als Trenner
                $dbvalues = explode('|+|', $activeItem->getValue($name));
            } else {
                // Neue Notation mit | als Trenner
                $dbvalues = explode('|', $activeItem->getValue($name));
            }
            $dbvalues_esc = array_map('htmlspecialchars', $dbvalues);
        }
        if ($title != '') {
            $label = htmlspecialchars(rex_translate($title));
        } else {
            $label = htmlspecialchars($name);
        }
        $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
        $attr .= rex_tabindex();
        $labelIt = true;
        $field = '';
        switch ($typeLabel) {
            case 'text':
                $field = '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $dbvalues_esc[0] . '" id="' . $id . ' "maxlength="' . $dblength . '" ' . $attr . ' />';
                break;
            case 'checkbox':
                $name .= '[]';
            case 'radio':
                $values = array();
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    $sql = new rex_sql();
                    $value_groups = $sql->getDBArray($params, MYSQL_NUM);
                    foreach ($value_groups as $value_group) {
                        if (isset($value_group[1])) {
                            $values[$value_group[1]] = $value_group[0];
                        } else {
                            $values[$value_group[0]] = $value_group[0];
                        }
                    }
                } else {
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        if (strpos($value_group, ':') !== false) {
                            $temp = explode(':', $value_group);
                            $values[$temp[0]] = $temp[1];
                        } else {
                            $values[$value_group] = $value_group;
                        }
                    }
                }
                $class = $typeLabel == 'radio' ? 'rex-rdo' : 'rex-chckbx';
                $oneValue = count($values) == 1;
                if (!$oneValue) {
                    $tag = '';
                    $labelIt = false;
                    $tag = 'div';
                    $tag_attr = ' class="rex-chckbxs rex-ptag"';
                    $field .= '<p>' . $label . '</p>';
                }
                foreach ($values as $key => $value) {
                    $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $id . $key);
                    $key = htmlspecialchars($key);
                    // wenn man keine Werte angibt (Boolean Chkbox/Radio)
                    // Dummy Wert annehmen, damit an/aus unterscheidung funktioniert
                    if ($oneValue && $key == '') {
                        $key = 'true';
                    }
                    $selected = '';
                    if (in_array($key, $dbvalues_esc)) {
                        $selected = ' checked="checked"';
                    }
                    if ($oneValue) {
                        $tag_attr = ' class="' . $class . '"';
                        $field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
                    } else {
                        $field .= '<p class="' . $class . '">' . "\n";
                        $field .= '<label for="' . $id . '"><span>' . htmlspecialchars($value) . '</span></label>';
                        $field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
                        $field .= '</p>' . "\n";
                    }
                }
                break;
            case 'select':
                $select = new rex_select();
                $select->setName($name);
                $select->setId($id);
                // hier mit den "raw"-values arbeiten, da die rex_select klasse selbst escaped
                $select->setSelected($dbvalues);
                foreach (rex_split_string($attr) as $attr_name => $attr_value) {
                    if (empty($attr_name)) {
                        continue;
                    }
                    $select->setAttribute($attr_name, $attr_value);
                    if ($attr_name == 'multiple') {
                        $select->setName($name . '[]');
                    }
                }
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    // Werte via SQL Laden
                    $select->addDBSqlOptions($params);
                } else {
                    // Optionen mit | separiert
                    // eine einzelne Option kann mit key:value separiert werden
                    $values = array();
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        if (strpos($value_group, ':') !== false) {
                            $temp = explode(':', $value_group);
                            $values[$temp[0]] = $temp[1];
                        } else {
                            $values[$value_group] = $value_group;
                        }
                    }
                    $select->addOptions($values);
                }
                $field .= $select->get();
                break;
            case 'datetime':
            case 'date':
                if ($dbvalues_esc[0] == '') {
                    $dbvalues_esc[0] = time();
                }
                $style = 'class="rex-fdate"';
                $yearStyle = 'class="rex-fdatey"';
                $yearSelect = new rex_select();
                $yearSelect->addOptions(range(2005, date('Y') + 10), true);
                $yearSelect->setName($name . '[year]');
                $yearSelect->setSize(1);
                $yearSelect->setId($id);
                $yearSelect->setStyle($yearStyle);
                $yearSelect->setSelected(date('Y', $dbvalues_esc[0]));
                $monthSelect = new rex_select();
                $monthSelect->addOptions(range(1, 12), true);
                $monthSelect->setName($name . '[month]');
                $monthSelect->setSize(1);
                $monthSelect->setStyle($style);
                $monthSelect->setSelected(date('m', $dbvalues_esc[0]));
                $daySelect = new rex_select();
                $daySelect->addOptions(range(1, 31), true);
                $daySelect->setName($name . '[day]');
                $daySelect->setSize(1);
                $daySelect->setStyle($style);
                $daySelect->setSelected(date('j', $dbvalues_esc[0]));
                if ($typeLabel == 'datetime') {
                    $hourSelect = new rex_select();
                    $hourSelect->addOptions(range(1, 23), true);
                    $hourSelect->setName($name . '[hour]');
                    $hourSelect->setSize(1);
                    $hourSelect->setStyle($style);
                    $hourSelect->setSelected(date('G', $dbvalues_esc[0]));
                    $minuteSelect = new rex_select();
                    $minuteSelect->addOptions(range(0, 59), true);
                    $minuteSelect->setName($name . '[minute]');
                    $minuteSelect->setSize(1);
                    $minuteSelect->setStyle($style);
                    $minuteSelect->setSelected(date('i', $dbvalues_esc[0]));
                    $field = $daySelect->get() . $monthSelect->get() . $yearSelect->get() . '-' . $hourSelect->get() . $minuteSelect->get();
                } else {
                    $field = $daySelect->get() . $monthSelect->get() . $yearSelect->get();
                }
                break;
            case 'textarea':
                $field = '<textarea name="' . $name . '" id="' . $id . '" cols="50" rows="6" ' . $attr . '>' . $dbvalues_esc[0] . '</textarea>';
                break;
            case 'REX_MEDIA_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $field = rex_var_media::getMediaButton($media_id);
                $field = str_replace('REX_MEDIA[' . $media_id . ']', $dbvalues_esc[0], $field);
                $field = str_replace('MEDIA[' . $media_id . ']', $name, $field);
                $id = 'REX_MEDIA_' . $media_id;
                $media_id++;
                break;
            case 'REX_MEDIALIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $name .= '[]';
                $field = rex_var_media::getMediaListButton($mlist_id, implode(',', $dbvalues_esc));
                $field = str_replace('MEDIALIST[' . $mlist_id . ']', $name, $field);
                $id = 'REX_MEDIALIST_' . $mlist_id;
                $mlist_id++;
                break;
            case 'REX_LINK_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $category = '';
                if ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $field = rex_var_link::getLinkButton($link_id, $dbvalues_esc[0], $category);
                $field = str_replace('LINK[' . $link_id . ']', $name, $field);
                $id = 'LINK_' . $link_id;
                $link_id++;
                break;
            case 'REX_LINKLIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $category = '';
                if ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $name .= '[]';
                $field = rex_var_link::getLinklistButton($llist_id, implode(',', $dbvalues), $category);
                $field = str_replace('LINKLIST[' . $llist_id . ']', $name, $field);
                $id = 'REX_LINKLIST_' . $llist_id;
                $llist_id++;
                break;
            default:
                // ----- EXTENSION POINT
                list($field, $tag, $tag_attr, $id, $label, $labelIt) = rex_register_extension_point('A62_CUSTOM_FIELD', array($field, $tag, $tag_attr, $id, $label, $labelIt, 'type' => $typeLabel, 'sql' => $sqlFields));
        }
        $s .= rex_call_func($formatCallback, array($field, $tag, $tag_attr, $id, $label, $labelIt), false);
        $sqlFields->next();
    }
    return $s;
}
Exemplo n.º 27
0
if ($user->hasPerm('copyContent[]') && $user->getComplexPerm('clang')->count() > 1) {
    $clang_perm = $user->getComplexPerm('clang')->getClangs();
    $lang_a = new rex_select();
    $lang_a->setId('clang_a');
    $lang_a->setName('clang_a');
    $lang_a->setSize('1');
    $lang_a->setAttribute('class', 'form-control');
    foreach ($clang_perm as $key) {
        $val = rex_i18n::translate(rex_clang::get($key)->getName());
        $lang_a->addOption($val, $key);
    }
    $lang_b = new rex_select();
    $lang_b->setId('clang_b');
    $lang_b->setName('clang_b');
    $lang_b->setSize('1');
    $lang_b->setAttribute('class', 'form-control');
    foreach ($clang_perm as $key) {
        $val = rex_i18n::translate(rex_clang::get($key)->getName());
        $lang_b->addOption($val, $key);
    }
    $lang_a->setSelected(rex_request('clang_a', 'int', null));
    $lang_b->setSelected(rex_request('clang_b', 'int', null));
    $panel = '<fieldset>';
    $grid = [];
    $formElements = [];
    $n = [];
    $n['label'] = '<label for="clang_a">' . rex_i18n::msg('content_contentoflang') . '</label>';
    $n['field'] = $lang_a->get();
    $formElements[] = $n;
    $fragment = new rex_fragment();
    $fragment->setVar('group', true);
Exemplo n.º 28
0
         break;
     case 3:
         $dbchecked3 = ' checked="checked"';
         break;
     case 4:
         $dbchecked4 = ' checked="checked"';
         break;
     default:
         $dbchecked0 = ' checked="checked"';
 }
 // Vorhandene Exporte auslesen
 $sel_export = new rex_select();
 $sel_export->setName('import_name');
 $sel_export->setId('import_name');
 $sel_export->setStyle('class="rex-slct"');
 $sel_export->setAttribute('onchange', 'checkInput(\'dbanlegen_3\')');
 $export_dir = $export_addon_dir . '/files';
 $exports_found = false;
 if (is_dir($export_dir)) {
     if ($handle = opendir($export_dir)) {
         $export_archives = array();
         $export_sqls = array();
         while (($file = readdir($handle)) !== false) {
             if ($file == '.' || $file == '..') {
                 continue;
             }
             $isSql = substr($file, strlen($file) - 4) == '.sql';
             $isArchive = substr($file, strlen($file) - 7) == '.tar.gz';
             if ($isSql) {
                 $export_sqls[] = substr($file, 0, -4);
                 $exports_found = true;
Exemplo n.º 29
0
    $addons = rex_install_packages::getMyPackages();
} catch (rex_install_functional_exception $e) {
    echo rex_warning($e->getMessage());
    $addonkey = '';
}
if ($addonkey && isset($addons[$addonkey])) {
    $addon = $addons[$addonkey];
    $file_id = rex_request('file', 'string');
    if ($file_id) {
        $new = $file_id == 'new';
        $file = $new ? array('version' => '', 'description' => '', 'status' => 1, 'redaxo_versions' => array($REX['VERSION'] . '.' . $REX['SUBVERSION'] . '.x')) : $addon['files'][$file_id];
        $newVersion = OOAddon::getVersion($addonkey);
        $redaxo_select = new rex_select();
        $redaxo_select->setName('upload[redaxo][]');
        $redaxo_select->setId('install-packages-upload-redaxo');
        $redaxo_select->setAttribute('class', 'rex-form-select');
        $redaxo_select->setSize(4);
        $redaxo_select->setMultiple(true);
        $redaxo_select->addOption('5.0.x', '5.0.x');
        $redaxo_select->addOption('4.6.x', '4.6.x');
        $redaxo_select->addOption('4.5.x', '4.5.x');
        $redaxo_select->addOption('4.4.x', '4.4.x');
        $redaxo_select->addOption('4.3.x', '4.3.x');
        $redaxo_select->setSelected($file['redaxo_versions']);
        $uploadCheckboxDisabled = '';
        $hiddenField = '';
        if ($new || !OOAddon::isAvailable($addonkey)) {
            $uploadCheckboxDisabled = ' disabled="disabled"';
            $hiddenField = '<input type="hidden" name="upload[upload_file]" value="' . (int) $new . '" />';
        }
        $content = '