Skip to content
This repository has been archived by the owner on Dec 18, 2021. It is now read-only.

Manager: select_sql Feld erscheint nicht als Such-/Filtermöglichkeit #316

Open
dtpop opened this issue Jul 28, 2015 · 0 comments
Open

Manager: select_sql Feld erscheint nicht als Such-/Filtermöglichkeit #316

dtpop opened this issue Jul 28, 2015 · 0 comments

Comments

@dtpop
Copy link

dtpop commented Jul 28, 2015

Wenn ein Feld als select_sql Feld angelegt wird, so kann man nach diesem Feldinhalt in der Liste nicht suchen, obwohl das Feld "als Suchfeld aufnehmen" markiert wurde.

class.xform.select_sql.inc.php um diesen Code ergänzen:

    public static function getSearchField($params)
    {
       $qry = $params['field']->getElement('query');
       $sql = new rex_sql();
       $sql->setQuery($qry);
       $res = $sql->getArray();

       $options = array('' => '---');

       foreach ($res as $l) {
          $options[$l['id']] = $l['name'];
       }

        $params['searchForm']->setValueField('select', array(
            'name' => $params['field']->getName(),
            'label' => $params['field']->getLabel(),
            'options' => $options
        ));

    }

    public static function getSearchFilter($params)
    {
        $value = $params['value'];
        $field =  $params['field']->getName();

        if ($value == '(empty)') {
            return ' (`' . mysql_real_escape_string($field) . '` = "" or `' . mysql_real_escape_string($field) . '` IS NULL) ';

        } elseif ($value == '!(empty)') {
            return ' (`' . mysql_real_escape_string($field) . '` <> "" and `' . mysql_real_escape_string($field) . '` IS NOT NULL) ';

        }

        $pos = strpos($value, '*');
        if ($pos !== false) {
            $value = str_replace('%', '\%', $value);
            $value = str_replace('*', '%', $value);
            return ' `' . mysql_real_escape_string($field) . "` LIKE  '" . mysql_real_escape_string($value) . "'";
        } else {
            return ' `' . mysql_real_escape_string($field) . "` =  '" . mysql_real_escape_string($value) . "'";
        }

    }

Hat mir geholfen. Wäre dankbar, wenn so etwas eingebaut werden könnte.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant