function __construct($tag = '', &$table, $attributes = array())
 {
     global $I18N;
     global $REX;
     parent::rex_form_select_element('', $table, $attributes);
     $dummy = null;
     $this->chkbox_element = new rex_form_checkbox_element('', $dummy);
     $this->chkbox_element->setAttribute('name', 'enable_restrictions');
     $this->chkbox_element->setAttribute('id', 'enable_restrictions_chkbx');
     $this->chkbox_element->addOption($I18N->msg('minfo_field_label_no_restrictions'), '');
     if ($table->getPrefix() == 'art_' || $table->getPrefix() == 'cat_') {
         $restrictionsSelect = new rex_category_select(false, false, true, false);
     } elseif ($table->getPrefix() == 'med_') {
         $restrictionsSelect = new rex_mediacategory_select();
     } elseif ($table->getPrefix() == 'asd_') {
         $restrictionsSelect = new rex_select();
         $restrictionsSelect->addSqlOptions('SELECT `name`, `id` FROM ' . $REX['TABLE_PREFIX'] . 'asd_news_category');
         $restrictionsSelect->setSize(6);
     } else {
         trigger_error('Unexpected TablePrefix "' . $table->getPrefix() . '"!', E_USER_ERROR);
         exit;
     }
     $restrictionsSelect->setMultiple(true);
     $this->setSelect($restrictionsSelect);
     $this->setNotice($I18N->msg('ctrl'));
 }
 function enterObject(&$email_elements, &$sql_elements, &$warning, &$form_output, $send = 0)
 {
     $multiple = FALSE;
     if (isset($this->elements[6]) && $this->elements[6] == 1) {
         $multiple = TRUE;
     }
     $size = (int) $this->getElement(7);
     if ($size < 1) {
         $size = 1;
     }
     $SEL = new rex_select();
     $SEL->setId("el_" . $this->getId());
     if ($multiple) {
         if ($size == 1) {
             $size = 2;
         }
         $SEL->setName($this->getFormFieldname() . "[]");
         $SEL->setSize($size);
         $SEL->setMultiple(1);
     } else {
         $SEL->setName($this->getFormFieldname());
         $SEL->setSize(1);
     }
     foreach (explode(',', $this->elements[3]) as $v) {
         $teile = explode('=', $v);
         $wert = $teile[0];
         if (isset($teile[1])) {
             $bezeichnung = $teile[1];
         } else {
             $bezeichnung = $teile[0];
         }
         $SEL->addOption(rex_translate($wert), $bezeichnung);
     }
     if (!$send && $this->value == "" && isset($this->elements[5]) && $this->elements[5] != "") {
         $this->value = $this->elements[5];
     }
     if (!is_array($this->getValue())) {
         $this->value = explode(",", $this->getValue());
     }
     foreach ($this->getValue() as $v) {
         $SEL->setSelected($v);
     }
     $this->value = implode(",", $this->getValue());
     $wc = "";
     if (isset($warning[$this->getId()])) {
         $wc = $warning[$this->getId()];
     }
     $SEL->setStyle(' class="select ' . $wc . '"');
     $form_output[$this->getId()] = '
   <p class="formselect formlabel-' . $this->getName() . '" id="' . $this->getHTMLId() . '">
   <label class="select ' . $wc . '" for="el_' . $this->getId() . '" >' . rex_translate($this->getElement(2)) . '</label>' . $SEL->get() . '</p>';
     $email_elements[$this->elements[1]] = $this->getValue();
     if (!isset($this->elements[4]) || $this->elements[4] != "no_db") {
         $sql_elements[$this->elements[1]] = $this->getValue();
     }
 }
    function enterObject(&$email_elements, &$sql_elements, &$warning, &$form_output, $send = 0)
    {
        $this->label = $this->elements[1];
        $multiple = FALSE;
        if (isset($this->elements[6]) && $this->elements[6] == 1) {
            $multiple = TRUE;
        }
        $SEL = new rex_select();
        $SEL->setId("el_" . $this->id);
        if ($multiple) {
            $SEL->setName("FORM[" . $this->params["form_name"] . "][el_" . $this->id . "][]");
            $SEL->setSize(5);
            $SEL->setMultiple(1);
            if (!is_array($this->value)) {
                $this->value = array();
            }
        } else {
            $SEL->setName("FORM[" . $this->params["form_name"] . "][el_" . $this->id . "]");
            $SEL->setSize(1);
            $this->value = stripslashes($this->value);
        }
        foreach ($this->getKeys() as $k => $v) {
            $SEL->addOption($v, $k);
        }
        if ($this->value == "" && !$send) {
            if (isset($this->elements[5])) {
                $SEL->setSelected($this->elements[5]);
            }
        } else {
            if (is_array($this->value)) {
                foreach ($this->value as $val) {
                    $SEL->setSelected($val);
                }
            } else {
                $SEL->setSelected($this->value);
            }
        }
        $wc = "";
        if (isset($warning["el_" . $this->getId()])) {
            $wc = $warning["el_" . $this->getId()];
        }
        $SEL->setStyle(' class="select ' . $wc . '"');
        $form_output[] = ' 
			<p class="formselect formlabel-' . $this->label . '">
			<label class="select ' . $wc . '" for="el_' . $this->id . '" >' . $this->elements[2] . '</label>' . $SEL->get() . '
			</p>';
        $email_elements[$this->elements[1]] = $this->value;
        if (!isset($this->elements[4]) || $this->elements[4] != "no_db") {
            $sql_elements[$this->elements[1]] = $this->value;
        }
    }
    function enterObject(&$email_elements, &$sql_elements, &$warning, &$form_output, $send = 0)
    {
        // ***** SELECT FESTLEGEN
        $SEL = new rex_select();
        $SEL->setName('FORM[' . $this->params["form_name"] . '][el_' . $this->id . '][]');
        $SEL->setId("el_" . $this->id);
        $SEL->setSize(5);
        $SEL->setMultiple(1);
        // ***** SQL - ROHDATEN ZIEHEN
        $sql = $this->elements[5];
        $teams = rex_sql::factory();
        $teams->debugsql = $this->params["debug"];
        $teams->setQuery($sql);
        for ($t = 0; $t < $teams->getRows(); $t++) {
            $SEL->addOption($teams->getValue($this->elements[7]), $teams->getValue($this->elements[6]));
            $teams->next();
        }
        $wc = "";
        // if (isset($warning["el_" . $this->getId()])) $wc = $warning["el_" . $this->getId()];
        $SEL->setStyle('class="multipleselect ' . $wc . '"');
        // ***** EINGELOGGT ODER NICHT SETZEN
        if ($send == 0) {
            // erster aufruf
            // Daten ziehen
            if ($this->params["main_id"] > 0) {
                $this->value = array();
                $g = rex_sql::factory();
                $g->debugsql = $this->params["debug"];
                $g->setQuery('select ' . $this->elements[3] . ' from ' . $this->elements[1] . ' where ' . $this->elements[2] . '=' . $this->params["main_id"]);
                $gg = $g->getArray();
                if (is_array($gg)) {
                    foreach ($gg as $g) {
                        $this->value[] = $g[$this->elements[3]];
                    }
                }
            }
        }
        // ***** AUSWAHL SETZEN
        if (is_array($this->value)) {
            foreach ($this->value as $val) {
                $SEL->setSelected($val);
            }
        }
        // ***** AUSGEBEN
        $form_output[] = '
			<p class="formmultipleselect" id="' . $this->getHTMLId() . '">
				<label class="multipleselect ' . $wc . '" for="el_' . $this->id . '" >' . $this->elements[4] . '</label>
				' . $SEL->get() . '
			</p>';
    }
Exemple #5
0
    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
$sel_dirs = new rex_select();
$sel_dirs->setId('rex-form-exportdir');
$sel_dirs->setName('EXPDIR[]');
$sel_dirs->setMultiple();
$sel_dirs->setSelected($EXPDIR);
$sel_dirs->setStyle('class="form-control"');
$dir = rex_path::frontend();
$folders = rex_finder::factory($dir)->dirsOnly()->ignoreDirs('.*')->ignoreDirs('redaxo');
$folders = iterator_to_array($folders);
$count_folders = count($folders);
if ($count_folders > 4) {
    $sel_dirs->setSize($count_folders);
}
foreach ($folders as $file) {
    $file = basename($file);
    $sel_dirs->addOption($file, $file);
}
$n = [];
$n['header'] = '<div id="rex-js-exporttype-files-div" style="display: none;">';
    function enterObject(&$email_elements, &$sql_elements, &$warning, &$form_output, $send = 0)
    {
        global $REX, $I18N;
        // ---------- CONFIG & CHECK
        $this->be_em = array();
        $this->be_em["source_table"] = $this->params["main_table"];
        // "rex_em_data_" wegcutten
        $this->be_em["label"] = $this->elements[2];
        // HTML Bezeichnung
        $this->be_em["target_table"] = $this->elements[3];
        // Zieltabelle
        $this->be_em["target_field"] = $this->elements[4];
        // Zielfield welches angezeigt wird.
        $this->be_em["relation_type"] = (int) $this->elements[5];
        // select single = 0 / select multiple = 1 / popup single = 2 / popup multiple = 3
        if ($this->be_em["relation_type"] > 4) {
            $this->be_em["relation_type"] = 0;
        }
        $this->be_em["eoption"] = (int) $this->elements[6];
        // "Leer" Option
        $this->be_em["page"] = $this->elements[8];
        // page=editme
        if ($this->be_em["page"] == "") {
            $this->be_em["page"] = 'editme';
        }
        $this->be_em["subpage"] = $this->elements[9];
        // page=editme
        if ($this->be_em["subpage"] == "") {
            $this->be_em["subpage"] = $this->be_em["target_table"];
        }
        if ($this->be_em["eoption"] != 1) {
            $this->be_em["eoption"] = 0;
        }
        $disabled = FALSE;
        // ---------- Datensatz existiert bereits, Values aus verkn�pfungstabelle holen
        if ($this->params["main_id"] > 0 && $send == 0) {
            if (trim($this->getValue()) != "") {
                $values = explode(",", $this->getValue());
            } else {
                $vs = rex_sql::factory();
                $vs->debugsql = $this->params["debug"];
                $vs->setQuery('
					select 
						target_id as id 
					from 
						rex_xform_relation 
					where 
						source_table="' . $this->be_em["source_table"] . '" and 
						source_name="' . $this->getName() . '" and 
						source_id="' . $this->params["main_id"] . '"');
                $v = $vs->getArray();
                $values = array();
                if (count($v) > 0) {
                    foreach ($v as $w) {
                        $values[$w["id"]] = $w["id"];
                    }
                }
            }
            $this->setValue($values);
            // echo '<pre>++ ';var_dump($this->getValue());echo '</pre>';
        }
        // ---------- connected, fix values
        if (isset($this->params["rex_xform_set"][$this->getName()])) {
            $values = $this->getValue();
            $values[] = $this->params["rex_xform_set"][$this->getName()];
            $this->setValue($values);
            $disabled = TRUE;
        }
        // ---------- Value angleichen -> immer Array mit IDs daraus machen
        if (!is_array($this->getValue())) {
            if (trim($this->getValue()) == "") {
                $this->setValue(array());
            } else {
                $this->setValue(explode(",", $this->getValue()));
            }
        }
        // ---------- (array) $this->getValue()
        // ---------- check values
        $sql = 'select id,' . $this->be_em["target_field"] . ' from ' . $this->be_em["target_table"];
        $value_names = array();
        if (count($this->getValue()) > 0) {
            $add_sql = array();
            foreach ($this->getValue() as $v) {
                $add_sql[] = ' id=' . $v . '';
            }
            if (count($add_sql) > 0) {
                $sql .= ' where ' . implode(" OR ", $add_sql);
            }
            $values = array();
            $vs = rex_sql::factory();
            $sss->debugsql = $this->params["debug"];
            $vs->setQuery($sql);
            foreach ($vs->getArray() as $v) {
                $value_names[$v["id"]] = $v[$this->be_em["target_field"]] . ' [id=' . $v['id'] . ']';
                $values[] = $v["id"];
                $value_name = $v[$this->be_em["target_field"]];
            }
            $this->setValue($values);
        }
        // ------------------------------------ POPUP, single, multiple 1-1, n-m
        if ($this->be_em["relation_type"] == 2 || $this->be_em["relation_type"] == 3) {
            $multiple = "0";
            if ($this->be_em["relation_type"] == 3) {
                $multiple = "1";
            }
            $link = 'index.php?page=xform&subpage=manager&tripage=data_edit&table_name=' . $this->be_em["target_table"];
            if ($multiple) {
                $out = '
				<div class="rex-widget">
				    <div class="rex-widget-xform-manager-datalist">
				      <input type="hidden" name="FORM[' . $this->params["form_name"] . '][el_' . $this->getId() . ']" id="XFORM_MANAGER_DATALIST_' . $this->getId() . '" value="' . implode(",", $this->getValue()) . '" />
				      <p class="rex-widget-field">
				        <select name="XFORM_MANAGER_DATALIST_SELECT[' . $this->getId() . ']" id="XFORM_MANAGER_DATALIST_SELECT_' . $this->getId() . '" size="8">';
                foreach ($value_names as $k => $v) {
                    $out .= '<option value="' . $k . '">' . $v . '</option>';
                }
                $out .= '
				        </select>
				      </p>
				       <p class="rex-widget-icons rex-widget-2col">
				       	<span class="rex-widget-column rex-widget-column-first">
						<a href="#" class="rex-icon-file-top" 
							onclick="xform_manager_moveDatalist(' . $this->getId() . ',\'top\');return false;" 
							title="' . $I18N->msg("xform_relation_move_first_data") . '"></a>
						<a href="#" class="rex-icon-file-up" 
							onclick="xform_manager_moveDatalist(' . $this->getId() . ',\'up\');return false;" 
							title="' . $I18N->msg("xform_relation_move_up_data") . '"></a>
						<a href="#" class="rex-icon-file-down" 
							onclick="xform_manager_moveDatalist(' . $this->getId() . ',\'down\');return false;" 
							title="' . $I18N->msg("xform_relation_down_first_data") . '"></a>
						<a href="#" class="rex-icon-file-bottom" 
							onclick="xform_manager_moveDatalist(' . $this->getId() . ',\'bottom\');return false;" 
							title="' . $I18N->msg("xform_relation_move_last_data") . '"></a>
				       	</span>
				       	<span class="rex-widget-column">
							<a href="#" class="rex-icon-file-open" 
								onclick="xform_manager_openDatalist(' . $this->getId() . ', \'' . $this->be_em["target_field"] . '\', \'' . $link . '\',\'' . $multiple . '\');return false;" 
								title="' . $I18N->msg("xform_relation_choose_entry") . '"></a>
							<a href="#" class="rex-icon-file-delete" 
								onclick="xform_manager_deleteDatalist(' . $this->getId() . ',\'' . $multiple . '\');return false;" 
								title="' . $I18N->msg("xform_relation_delete_entry") . '"></a>
				        </span>
				 	    </p>
				    </div>
				  </div>
			 	<div class="rex-clearer"></div>';
            } else {
                $out = '
				
				<div class="rex-widget">
					<div class="rex-widget-data">
					
					<p class="rex-widget-field">
					<input type="hidden" name="FORM[' . $this->params["form_name"] . '][el_' . $this->getId() . ']" id="XFORM_MANAGER_DATA_' . $this->getId() . '" value="' . implode(",", $this->getValue()) . '" />
					<input type="text" size="30" name="XFORM_MANAGER_DATANAME[' . $this->getId() . ']" value="' . htmlspecialchars($value_name) . '" id="XFORM_MANAGER_DATANAME_' . $this->getId() . '" readonly="readonly" class="text" />
					</p>
					<p class="rex-widget-icons rex-widget-1col">
					<span class="rex-widget-column rex-widget-column-first">
						<a href="#" class="rex-icon-file-open" 
							onclick="xform_manager_openDatalist(' . $this->getId() . ', \'' . $this->be_em["target_field"] . '\', \'' . $link . '\',\'' . $multiple . '\');return false;" 
							title="' . $I18N->msg("xform_relation_choose_entry") . '"></a>
						<a href="#" class="rex-icon-file-delete" 
							onclick="xform_manager_deleteDatalist(' . $this->getId() . ',\'' . $multiple . '\');return false;" 
							title="' . $I18N->msg("xform_relation_delete_entry") . '"></a>
					</span>
					</p>
					</div>
				</div>
				<div class="rex-clearer"></div>
				';
            }
            $form_output[] = '
				<p class="formpopup" id="' . $this->getHTMLId() . '">
					<label class="select ' . $wc . '" for="el_' . $this->id . '" >' . $this->be_em["label"] . '</label>
					' . $out . '
				</p>';
        }
        // --------------------------------------- POPUP, 1-n
        if ($this->be_em["relation_type"] == 4) {
            $text = 'not yet implemented';
            // TODO
            /*
            if($this->params["main_id"] < 1)
            {
            	$text = 'Diesen Bereich k&ouml;nnen Sie erst bearbeiten, wenn der Datensatz angelegt wurde.';
            }else
            {
            		
            	$link = 'javascript:rex_xform_openRelation('.$this->getId().',\''.$this->be_em["target_table"].'\',\'id'.
            		'&rex_em_filter['.$this->be_em["target_field"].']='.$this->params["main_id"].
            		'&rex_em_set['.$this->be_em["target_field"].']='.$this->params["main_id"].
            		'&page='.$this->be_em["page"].
            		'&subpage='.$this->be_em["subpage"].
            	'\');';
            		
            	$text = '<a href="'.$link.'">'.
            	'Link'.
            	'</a>';
            }
            */
            $form_output[] = '
			<p class="formhtml" id="' . $this->getHTMLId() . '">
			<label class="select " for="el_' . $this->getId() . '" >' . $this->be_em["label"] . '</label>
			<input type="hidden" name="FORM[' . $this->params["form_name"] . '][el_' . $this->getId() . '][]" id="REX_RELATION_' . $this->getId() . '" />
			<span>' . $text . '</span>
			</p>';
            return;
        }
        // --------------------------------------- Selectbox, single or multiple
        if ($this->be_em["relation_type"] < 2) {
            if ($send == 1 && $this->be_em["eoption"] == 0 && count($this->getValue()) == 0) {
                // Error. Fehlermeldung ausgeben
                $this->params["warning"][] = $this->elements[7];
                $this->params["warning_messages"][] = $this->elements[7];
                $wc = $this->params["error_class"];
            }
            $wc = "";
            if (isset($warning[$this->getId()])) {
                $wc = $warning[$this->getId()];
            }
            // ----- SELECT BOX
            $sss = rex_sql::factory();
            $sss->debugsql = $this->params["debug"];
            $sss->setQuery('select * from ' . $this->be_em["target_table"] . ' order by ' . $this->be_em["target_field"]);
            $SEL = new rex_select();
            $SEL->setName('FORM[' . $this->params["form_name"] . '][el_' . $this->id . '][]');
            $SEL->setId("el_" . $this->id);
            $SEL->setStyle('class="select"');
            $SEL->setDisabled($disabled);
            $SEL->setSize(1);
            // mit --- keine auswahl ---
            if ($this->be_em["relation_type"] == 1) {
                $SEL->setMultiple(TRUE);
                $SEL->setSize(5);
            } elseif ($this->be_em["eoption"] == 1) {
                $SEL->addOption("-", "");
            }
            foreach ($sss->getArray() as $v) {
                $s = $v[$this->be_em["target_field"]];
                if (strlen($s) > 50) {
                    $s = substr($s, 0, 45) . ' ... ';
                }
                $s = $s . ' [id=' . $v["id"] . ']';
                $SEL->addOption($s, $v["id"]);
            }
            // var_dump($this->getValue());
            $SEL->setSelected($this->getValue());
            $form_output[] = '
	        <p class="formselect" id="' . $this->getHTMLId() . '">
	          <label class="select ' . $wc . '" for="el_' . $this->id . '" >' . $this->be_em["label"] . '</label>
	          ' . $SEL->get() . '
	        </p>';
        }
        // --------------------------------------- save
        $email_elements[$this->getName()] = stripslashes(implode(",", $this->getValue()));
        $sql_elements[$this->getName()] = implode(",", $this->getValue());
    }
// zugriff auf module
$sel_module = new rex_select();
$sel_module->setMultiple(1);
$sel_module->setStyle('class=rex-perm-fselect');
$sel_module->setSize(10);
$sel_module->setName('userperm_module[]');
$sel_module->setId('userperm_module');
$sqlmodule = new rex_sql();
$sqlmodule->setQuery('select * from ' . $REX['TABLE_PREFIX'] . 'module order by name');
for ($i = 0; $i < $sqlmodule->getRows(); $i++) {
    $sel_module->addOption($sqlmodule->getValue('name'), $sqlmodule->getValue('id'));
    $sqlmodule->next();
}
// extrarechte - von den addons übergeben
$sel_extra = new rex_select();
$sel_extra->setMultiple(1);
$sel_extra->setStyle('class=rex-perm-fselect');
$sel_extra->setSize(10);
$sel_extra->setName('userperm_extra[]');
$sel_extra->setId('userperm_extra');
if (isset($REX['EXTRAPERM'])) {
    sort($REX['EXTRAPERM']);
    $sel_extra->addArrayOptions($REX['EXTRAPERM'], false);
}
// --------------------------------- Title
rex_title($I18N->msg('title_user'), '');
// --------------------------------- FUNCTIONS
if (isset($FUNC_UPDATE) && $FUNC_UPDATE != '' || (isset($FUNC_APPLY) and $FUNC_APPLY != '')) {
    $loginReset = rex_request('logintriesreset', 'int');
    $userstatus = rex_request('userstatus', 'int');
    $updateuser = new rex_sql();
Exemple #8
0
echo $group ? ' group_' . $group : '';
?>
">
  <dt>
    <label class="control-label" for="<?php 
echo rex_string::normalize($name, '');
?>
"><?php 
echo $label;
?>
</label>
  </dt>
  <dd>
    <?php 
$newSelect = new rex_select();
$newSelect->setMultiple($this->getVar('multiple'));
$newSelect->setAttribute('class', 'form-control');
$newSelect->setId(rex_string::normalize($name, ''));
$newSelect->setSize($size);
$newSelect->setName($name);
$newSelect->setSelected($this->getVar('selected'));
if (count($options) > 0) {
    foreach ($options as $key => $module) {
        if (is_array($module)) {
            $newSelect->addOption($module['name'], $module['id']);
        } else {
            $newSelect->addOption($module, $key);
        }
    }
}
echo $newSelect->get();
         if (!$popup && $table["import"] == 1 && $this->hasDataPageFunction("import")) {
             echo '&nbsp;&nbsp;&nbsp;<a href="index.php?' . $link_vars . '&func=import"><b>o ' . $I18N->msg('import') . '</b></a>';
         }
         echo '</td>';
     }
     echo '</tr></table><br />';
 }
 // ----- SUCHE
 if ($table["search"] == 1 && $this->hasDataPageFunction("search")) {
     $list = rex_request("list", "string", "");
     $start = rex_request("start", "string", "");
     $sort = rex_request("sort", "string", "");
     $sorttype = rex_request("sorttype", "string", "");
     $addsql = "";
     $search_field_select = new rex_select();
     $search_field_select->setMultiple(1);
     $search_field_select->setSize(5);
     $search_field_select->setName("rex_xform_searchfields[]");
     $search_field_select->setStyle("width:100%;");
     $search_field_select->addOption('id', "id");
     $field_names = array();
     foreach ($fields as $field) {
         if ($field["type_id"] == "value" && $field["search"] == 1) {
             $search_field_select->addOption(rex_translate($field["f2"]) . ' [' . $field["f1"] . ']', $field["f1"]);
         }
     }
     foreach ($rex_xform_searchfields as $cs) {
         $search_field_select->setSelected($cs);
     }
     $suchform = '<table width=770 cellpadding=5 cellspacing=1 border=0 bgcolor=#ffffff class="rex-table">';
     $suchform .= '<form action="' . $_SERVER['PHP_SELF'] . '" method="poost" >';
 protected function getOutput()
 {
     $id = $this->getArg('id', 0, true);
     if (!in_array($this->getContext(), ['module', 'action']) || !is_numeric($id) || $id < 1 || $id > 20) {
         return false;
     }
     $value = $this->getContextData()->getValue('value' . $id);
     if ($this->hasArg('isset') && $this->getArg('isset')) {
         return $value ? 'true' : 'false';
     }
     if ($this->hasArg('widget') && $this->getArg('widget')) {
         if (!$this->environmentIs(self::ENV_INPUT)) {
             return false;
         }
         $select = new rex_select();
         if ($this->hasArg('multiple') && $this->getArg('options')) {
             $select->setName('REX_INPUT_VALUE[' . $id . '][]');
             $select->setMultiple();
             $select->setSelected(rex_var::toArray($value));
         } else {
             $select->setName('REX_INPUT_VALUE[' . $id . ']');
             $select->setSelected($value);
         }
         if ($this->hasArg('options') && $this->getArg('options')) {
             $options = $this->getArg('options');
             if (rex_sql::getQueryType($options) == 'SELECT') {
                 $select->addSqlOptions($options);
             } else {
                 $groups = explode('|', $options);
                 if (count($groups)) {
                     foreach ($groups as $group) {
                         $parseGroup = explode(':', $group);
                         $groupOptions = $parseGroup[0];
                         if (count($parseGroup) == 2) {
                             $select->addOptgroup($parseGroup[0]);
                             $groupOptions = $parseGroup[1];
                         }
                         if (rex_sql::getQueryType($groupOptions) == 'SELECT') {
                             $select->addSqlOptions($groupOptions);
                         } else {
                             $groupOptions = explode(',', $groupOptions);
                             if (count($groupOptions)) {
                                 foreach ($groupOptions as $groupOption) {
                                     $optionPair = explode('=', $groupOption);
                                     if (count($optionPair) == 1) {
                                         $select->addOption($optionPair[0], $optionPair[0]);
                                     } elseif (count($optionPair) == 2) {
                                         $select->addOption($optionPair[0], $optionPair[1]);
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         $widget = '<div class="rex-select-style">' . $select->get() . '</div>';
         if ($this->hasArg('output') && $this->getArg('output')) {
             $label = $this->hasArg('label') ? $this->getArg('label') : '';
             $widget = Dao::getForm($widget, $label, $this->getArg('output'));
         }
         return self::quote($widget);
     }
     return self::quote(htmlspecialchars($value));
 }
$tmp->setName('SELECT[' . $id . ']');
$tmp->addOption('nein', 0);
// Beschreibung ['string'], Wert [int|'string']
$tmp->addOption('ja', 1);
$tmp->setSelected($myREX['settings']['SELECT'][$id]);
// gespeicherte Werte einsetzen
$select8 = $tmp->get();
// MULTISELECT BOX
////////////////////////////////////////////////////////////////////////////////
$id = 1;
// ID dieser MultiSelect Box
$tmp = new rex_select();
// rex_select Objekt initialisieren
$tmp->setSize(4);
// angezeigte Zeilen, Rest wird gescrollt
$tmp->setMultiple(true);
$tmp->setName('MULTISELECT[' . $id . '][]');
// abschließendes [] wichtig!
$tmp->addOption('rot', 0);
// Beschreibung ['string'], Wert [int|'string']
$tmp->addOption('grün', 1);
$tmp->addOption('blau', 'blau');
if (isset($myREX['settings']['MULTISELECT'][$id])) {
    $tmp->setSelected($myREX['settings']['MULTISELECT'][$id]);
    // gespeicherte Werte einsetzen
}
$multiselect = $tmp->get();
// HTML in Variable speichern
echo '
<div class="rex-addon-output">
  <div class="rex-form">
Exemple #12
0
    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>
                           <input type="hidden" name="upload[oldversion]" value="' . $file['version'] . '" />';
        $formElements[] = $n;
Exemple #13
0
$sel_ansicht = new rex_select();
$sel_ansicht->setId('aufgaben-ansicht');
$sel_ansicht->setName('config[ansicht]');
$sel_ansicht->setSize(1);
$sel_ansicht->setAttribute('class', 'form-control');
$sel_ansicht->setSelected($this->getConfig('ansicht'));
foreach (['beide' => $this->i18n('aufgaben_settings_beide'), 'liste' => $this->i18n('aufgaben_settings_liste'), 'kanban' => $this->i18n('aufgaben_settings_kanban')] as $type => $name) {
    $sel_ansicht->addOption($name, $type);
}
$n = [];
$formElements = [];
$n['label'] = '<label for="aufgaben-ansicht">' . $this->i18n('aufgaben_settings_ansicht') . '</label>';
$n['field'] = '<div class="rex-select-style">' . $sel_ansicht->get() . '</div>';
$formElements[] = $n;
$tableSelect = new rex_select();
$tableSelect->setMultiple();
$tableSelect->setId('aufgabe-mails');
$tableSelect->setName('config[mails][]');
$tableSelect->setAttribute('class', 'form-control');
// Alle  E-Mail Adressen holen
$sql_mail = rex_sql::factory();
//$sql_admin->setDebug();
$sql_mail->setTable('rex_user');
$sql_mail->setWhere('email !="" AND status = 1');
$sql_mail->select();
if ($sql_mail->getRows()) {
    for ($i = 0; $i < $sql_mail->getRows(); $i++) {
        $tableSelect->addOption($sql_mail->getValue('email'), $sql_mail->getValue('email'));
        if (in_array($sql_mail->getValue('email'), $this->getConfig('mails'))) {
            $tableSelect->setSelected($sql_mail->getValue('email'));
        }
    function enterObject(&$email_elements, &$sql_elements, &$warning, &$form_output, $send = 0)
    {
        global $REX;
        // $this->params["debug"] = TRUE;
        // ---------- CONFIG & CHECK
        $this->be_em = array();
        $this->be_em["source_table"] = $this->params["main_table"];
        // "rex_em_data_" wegcutten
        $this->be_em["label"] = $this->elements[2];
        // HTML Bezeichnung
        $this->be_em["target_table"] = $this->elements[3];
        // Zieltabelle
        $this->be_em["target_field"] = $this->elements[4];
        // Zielfield welches angezeigt wird.
        $this->be_em["relation_type"] = (int) $this->elements[5];
        // single = 0 / multiple = 1 / popup = 2
        if ($this->be_em["relation_type"] > 2) {
            $this->be_em["relation_type"] = 0;
        }
        $this->be_em["eoption"] = (int) $this->elements[6];
        // "Leer" Option
        $this->be_em["page"] = $this->elements[8];
        // page=editme
        if ($this->be_em["page"] == "") {
            $this->be_em["page"] = 'editme';
        }
        $this->be_em["subpage"] = $this->elements[9];
        // page=editme
        if ($this->be_em["subpage"] == "") {
            $this->be_em["subpage"] = $this->be_em["target_table"];
        }
        if ($this->be_em["eoption"] != 1) {
            $this->be_em["eoption"] = 0;
        }
        $disabled = FALSE;
        if ($this->be_em["relation_type"] == 2) {
            if ($this->params["main_id"] < 1) {
                $text = 'Diesen Bereich k&ouml;nnen Sie erst bearbeiten, wenn der Datensatz angelegt wurde.';
            } else {
                $link = 'javascript:rex_xform_openRelation(' . $this->getId() . ',\'' . $this->be_em["target_table"] . '\',\'id' . '&rex_em_filter[' . $this->be_em["target_field"] . ']=' . $this->params["main_id"] . '&rex_em_set[' . $this->be_em["target_field"] . ']=' . $this->params["main_id"] . '&page=' . $this->be_em["page"] . '&subpage=' . $this->be_em["subpage"] . '\');';
                $text = '<a href="' . $link . '">' . 'Link' . '</a>';
            }
            $form_output[] = '
			<p class="formhtml">
			<label class="select " for="el_' . $this->getId() . '" >' . $this->be_em["label"] . '</label>
			<input type="hidden" name="FORM[' . $this->params["form_name"] . '][el_' . $this->getId() . '][]" id="REX_RELATION_' . $this->getId() . '" />
			<span>' . $text . '</span>
			</p>';
            return;
        }
        // ---------- Datensatz existiert bereits, Values aus verknŸpfungstabelle holen
        if ($this->params["main_id"] > 0 && $send == 0) {
            $vs = rex_sql::factory();
            $sss->debugsql = $this->params["debug"];
            $vs->setQuery('select target_id as id from rex_' . $this->params["manager_type"] . '_relation where source_table="' . $this->be_em["source_table"] . '" and source_name="' . $this->getName() . '" and source_id="' . $this->params["main_id"] . '"');
            $v = $vs->getArray();
            $values = array();
            if (count($v) > 0) {
                foreach ($v as $w) {
                    $values[$w["id"]] = $w["id"];
                }
            }
            // Fallback - wenn nichts da, dann vielleicht im Datensatz selbst.
            // Nur nštig wenn man Daten aus anderen Tabellen importiert hat und
            // man die Datenstruktur angleichen mšchte.
            if (trim($this->getValue()) != "") {
                $values = array_merge($values, explode(",", $this->getValue()));
            }
            // Neue Daten speichern
            $this->setValue($values);
        }
        // ---------- Fertigsets einbauen. Sind quasi fest eingebrannte Werte
        if (isset($this->params["rex_em_set"][$this->getName()])) {
            $values = $this->getValue();
            $values[] = $this->params["rex_em_set"][$this->getName()];
            $this->setValue($values);
            $disabled = TRUE;
        }
        // ---------- Value angleichen -> immer Array mit IDs daraus machen
        if (!is_array($this->getValue())) {
            if (trim($this->getValue()) == "") {
                $this->setValue(array());
            } else {
                $this->setValue(explode(",", $this->getValue()));
            }
        }
        // Ab hier ist Value immer Array
        // Values prŸfen
        $sql = 'select id,' . $this->be_em["target_field"] . ' from ' . $this->be_em["target_table"];
        $value_names = array();
        if (count($this->getValue()) > 0) {
            $addsql = '';
            foreach ($this->getValue() as $v) {
                if ($addsql != "") {
                    $addsql .= ' OR ';
                }
                $addsql .= ' id=' . $v . '';
            }
            if ($addsql != "") {
                $sql .= ' where ' . $addsql;
            }
            $values = array();
            $vs = rex_sql::factory();
            $sss->debugsql = $this->params["debug"];
            $vs->setQuery($sql);
            foreach ($vs->getArray() as $v) {
                $value_names[$v["id"]] = $v[$this->be_em["target_field"]];
                $values[] = $v["id"];
            }
            $this->setValue($values);
        }
        if ($send == 1 && $this->be_em["eoption"] == 0 && count($this->getValue()) == 0) {
            // Error. Fehlermeldung ausgeben
            $this->params["warning"][] = $this->elements[7];
            $this->params["warning_messages"][] = $this->elements[7];
            $wc = $this->params["error_class"];
        }
        $wc = "";
        if (isset($warning["el_" . $this->getId()])) {
            $wc = $warning["el_" . $this->getId()];
        }
        // ----- SELECT BOX
        $sss = rex_sql::factory();
        $sss->debugsql = $this->params["debug"];
        $sss->setQuery('select * from ' . $this->be_em["target_table"] . ' order by ' . $this->be_em["target_field"]);
        $SEL = new rex_select();
        $SEL->setName('FORM[' . $this->params["form_name"] . '][el_' . $this->id . '][]');
        $SEL->setId("el_" . $this->id);
        $SEL->setDisabled($disabled);
        $SEL->setSize(1);
        // mit --- keine auswahl ---
        if ($this->be_em["relation_type"] == 1) {
            $SEL->setMultiple(TRUE);
            $SEL->setSize(5);
        } elseif ($this->be_em["eoption"] == 1) {
            $SEL->addOption("-", "");
        }
        foreach ($sss->getArray() as $v) {
            $SEL->addOption($v[$this->be_em["target_field"]], $v["id"]);
        }
        // var_dump($this->getValue());
        $SEL->setSelected($this->getValue());
        $form_output[] = '
        <p class="formselect">
          <label class="select ' . $wc . '" for="el_' . $this->id . '" >' . $this->be_em["label"] . '</label>
          ' . $SEL->get() . '
        </p>';
        $email_elements[$this->getName()] = stripslashes(implode(",", $this->getValue()));
        $sql_elements[$this->getName()] = implode(",", $this->getValue());
        return;
    }
$content .= '
    </fieldset>';
/* whitelist */
$content .= '
    <fieldset>
        <legend>' . $this->i18n('config_whitelist') . '</legend>';
$formElements = [];
$n = [];
$n['label'] = '<label for="emailobfuscator-config-articles">' . $this->i18n('config_articles') . '</label>';
$n['field'] = rex_var_linklist::getWidget(1, 'config[articles]', $this->getConfig('articles'));
$formElements[] = $n;
$n = [];
$n['label'] = '<label for="emailobfuscator-config-templates">' . $this->i18n('config_templates') . '</label>';
$select = new rex_select();
$select->setId('emailobfuscator-config-templates');
$select->setMultiple();
$select->setSize(10);
$select->setAttribute('class', 'form-control');
$select->setName('config[templates][]');
$select->addSqlOptions('SELECT `name`, `id` FROM `' . rex::getTablePrefix() . 'template` ORDER BY `name` ASC');
$select->setSelected($this->getConfig('templates'));
$n['field'] = $select->get();
$formElements[] = $n;
$fragment = new rex_fragment();
$fragment->setVar('elements', $formElements, false);
$content .= $fragment->parse('core/form/form.php');
$content .= '
    </fieldset>';
/* buttons */
$formElements = [];
$n = [];
Exemple #16
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;
 }
Exemple #17
0
 echo '<a name="edit"></a>';
 // Ctype Handling
 $ctypes = rex_getAttributes('ctype', $attributes);
 $modules = rex_getAttributes('modules', $attributes);
 $categories = rex_getAttributes('categories', $attributes);
 if (!is_array($modules)) {
     $modules = array();
 }
 if (!is_array($categories)) {
     $categories = array();
 }
 // modules[ctype_id][module_id];
 // modules[ctype_id]['all'];
 // Module ...
 $modul_select = new rex_select();
 $modul_select->setMultiple(true);
 $modul_select->setStyle('class="rex-form-select"');
 $modul_select->setSize(10);
 $m_sql = rex_sql::factory();
 $m_sql->setQuery('SELECT id, name FROM ' . $REX['TABLE_PREFIX'] . 'module ORDER BY name');
 foreach ($m_sql->getArray() as $m) {
     $modul_select->addOption(rex_translate($m['name'], $I18N, false), $m['id']);
 }
 // Kategorien
 $cat_select = new rex_category_select(false, false, false, false);
 $cat_select->setMultiple(true);
 $cat_select->setStyle('class="rex-form-select"');
 $cat_select->setSize(10);
 $cat_select->setName('categories[]');
 $cat_select->setId('categories');
 if (count($categories) > 0) {
    function enterObject(&$email_elements, &$sql_elements, &$warning, &$form_output, $send = 0)
    {
        $multiple = (int) $this->getElement(8);
        if ($multiple != 1) {
            $multiple = 0;
        }
        $size = (int) $this->getElement(9);
        if ($size < 1) {
            $size = 1;
        }
        $SEL = new rex_select();
        $SEL->setId($this->getHTMLId() . '-s');
        if ($multiple) {
            $SEL->setName($this->getFormFieldname() . '[]');
            $SEL->setMultiple();
            $SEL->setSize($size);
        } else {
            $SEL->setName($this->getFormFieldname());
            $SEL->setSize(1);
        }
        $sql = $this->elements[3];
        $teams = rex_sql::factory();
        $teams->debugsql = $this->params["debug"];
        $teams->setQuery($sql);
        $sqlnames = array();
        // mit --- keine auswahl ---
        if (!$multiple && $this->getElement(6) == 1) {
            $SEL->addOption($this->elements[7], "0");
        }
        foreach ($teams->getArray() as $t) {
            $v = $t['name'];
            $k = $t['id'];
            $SEL->addOption($v, $k);
            $sqlnames[$k] = $t['name'];
        }
        $wc = "";
        if (isset($warning["el_" . $this->getId()])) {
            $wc = $warning["el_" . $this->getId()];
        }
        $SEL->setStyle(' class="select ' . $wc . '"');
        if ($this->value == "" && isset($this->elements[4]) && $this->elements[4] != "") {
            $this->value = $this->elements[4];
        }
        if (!is_array($this->value)) {
            $this->value = explode(",", $this->value);
        }
        foreach ($this->value as $v) {
            $SEL->setSelected($v);
        }
        $form_class = '';
        if ($multiple) {
            $form_class = ' formselect-multiple-' . $size;
        }
        $form_output[] = '
			<p class="formselect' . $form_class . '"  id="' . $this->getHTMLId() . '">
				<label class="select ' . $wc . '" for="' . $this->getHTMLId() . '-s" >' . $this->elements[2] . '</label>
				' . $SEL->get() . '
			</p>';
        /*
        if (isset($sqlnames[$this->value])) 
        	$email_elements[$this->elements[1].'_SQLNAME'] = stripslashes($sqlnames[$this->value]);
        */
        $this->value = implode(",", $this->value);
        $email_elements[$this->elements[1]] = stripslashes($this->value);
        if (!isset($this->elements[5]) || $this->elements[5] != "no_db") {
            $sql_elements[$this->elements[1]] = $this->value;
        }
    }
Exemple #19
0
                    <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) {
        foreach ($REX['CLANG'] as $k => $v) {
            $select->addOption("nur folgende Sprache: " . $v, 'clang_' . $k);
 echo '<a name="edit"></a>';
 // Ctype Handling
 $ctypes = rex_getAttributes("ctype", $attributes);
 $modules = rex_getAttributes("modules", $attributes);
 $categories = rex_getAttributes("categories", $attributes);
 if (!is_array($modules)) {
     $modules = array();
 }
 if (!is_array($categories)) {
     $categories = array();
 }
 // modules[ctype_id][module_id];
 // modules[ctype_id]['all'];
 // Module ...
 $modul_select = new rex_select();
 $modul_select->setMultiple(TRUE);
 $modul_select->setStyle('class="rex-form-select"');
 $modul_select->setSize(10);
 $m_sql = rex_sql::factory();
 $m_sql->setQuery('SELECT id, name FROM ' . $REX['TABLE_PREFIX'] . 'module ORDER BY name');
 foreach ($m_sql->getArray() as $m) {
     $modul_select->addOption($m["name"], $m["id"]);
 }
 // Kategorien
 $cat_select = new rex_category_select(false, false, false, false);
 $cat_select->setMultiple(true);
 $cat_select->setStyle('class="rex-form-select"');
 $cat_select->setSize(10);
 $cat_select->setName('categories[]');
 $cat_select->setId('categories');
 if (count($categories) > 0) {