function generField($filterConf, &$list, $attr) { // Lokalis parameterek inicializalasa az osztalyvaltozok alapjan: foreach (array('width', 'filterText', 'resetOnClick', 'enable') as $a) { ${$a} = $this->{$a}; } // A $filterConf-ban erkezo ertekek felulirhatjak a lokalis parametereket: if (is_array($filterConf)) { foreach (array('width', 'filterText', 'resetOnClick', 'enable') as $a) { if (isset($filterConf[$a])) { ${$a} = $filterConf[$a]; } } $type = $filterConf['type']; } else { $type = $filterConf; } if (!$enable) { return ""; } if ($type == "text_filter") { $onclick = $resetOnClick ? "onclick=\"this.value='';Table.filter(this,this)\"" : ""; $s = GenerWidget::generTextField($type, "filter", $filterText, $width, "", " onkeyup=\"Table.filter(this,this)\" {$onclick}"); } elseif ($type == "select_filter") { $values = array_unique(array_map(create_function('$v', "return strip_tags(\$v->showListVal('{$attr}'));"), $list)); $values[] = ""; sort($values); $labels = $values; $labels[0] = "All"; $s = GenerWidget::generSelectField("filter", $labels, $values, "", "All", 0, $width, "", "onchange=\"Table.filter(this,this)\""); } return $s; }
function generClassSelectionField($attr, $val, &$lllProp) { global $lll; $size = isset($val["size"]) ? $val["size"] : 1; $width = isset($val["width"]) ? $val["width"] : 0; if (isset($val["get_values_callback"])) { eval('$objects=$this->base->' . $val["get_values_callback"] . ';'); } else { if (isset($val["query"])) { // ha egy fuggvenyt adunk meg query-kent: if (!preg_match("{^SELECT.*}", $val["query"])) { eval("\$query={$val['query']};"); } else { $query = $val["query"]; } } else { $query = "SELECT id, {$val['labelAttr']} FROM @" . $val['class']; } if (isset($val["where"])) { // ha egy osztalyfuggvenyt adunk meg where feltetelkent: pl. "where"=>"\$this->base->getWhere()" if (strstr($val["where"], "\$this->base")) { eval("\$w={$val['where']};"); } else { $w = $val["where"]; } $query .= " WHERE {$w}"; } if (isset($val["ordered"])) { $query .= " ORDER BY {$val['ordered']}"; } if (isset($val["onchange"])) { JavaScript::addEvent('#' . $attr, "change", $val["onchange"]); } $objects = new $val["class"](); loadObjectsSQL($objects, $query, $objects); } $labels = array(); $values = array(); if (isset($val["nothing selected"])) { $values[] = 0; $labels[] = $lll[$val["nothing selected"]]; } if (isset($val["labelFormat"])) { $labelAttrs = split(", *", $val["labelAttr"]); $e = "sprintf('{$val['labelFormat']}'"; foreach ($labelAttrs as $l) { $e .= ", \$obj->{$l}"; } $e .= ")"; } foreach ($objects as $obj) { $values[] = $obj->id; if ($obj->id && isset($val["labelFormat"])) { eval("\$temp={$e};"); $labels[] = $temp; } elseif ($obj->id) { $labels[] = $obj->getAttr($val["labelAttr"]); } else { $labels[] = $lll["nothingSelected"]; } } $showRelation = isset($val["show_relation"]) ? $val["show_relation"] : ""; $s = GenerWidget::generSelectField($attr, $labels, $values, $attr, $this->base->{$attr}, $size, $width, $showRelation); if (in_array("selectfilter", $val)) { $s = GenerWidget::generSelectFilterField($attr, $labels, $width) . $s; } return $s; }
function showSelector($what) { global $lll; $_S =& new AppSettings(); if (!$_S->{"allowSelect{$what}"}) { return ""; } $labels = array($lll["change{$what}"]); $values = array("0"); $allowedItems = explode(",", $_S->{"allowed{$what}s"}); foreach ($allowedItems as $item) { $values[$item] = $item; if (isset($lll["allowed{$what}s_{$item}"])) { $labels[$item] = $lll["allowed{$what}s_{$item}"]; } else { $labels[$item] = str_replace("_", " ", $item); } } JavaScript::addInclude(GORUM_JS_DIR . "/cookie.js"); $base = Controller::getBaseUrl(); JavaScript::addOnload("\$.noah.themeSelectorWidget(" . G::js($what, $base) . ")"); return GenerWidget::generSelectField("{$what}SelectorWidget", $labels, $values, "{$what}SelectorWidget", "0"); }