Contao\DC_Folder::searchMenu PHP Метод

searchMenu() защищенный Метод

Return a search form that allows to search results using regular expressions
protected searchMenu ( ) : string
Результат string
    protected function searchMenu()
    {
        /** @var AttributeBagInterface $objSessionBag */
        $objSessionBag = \System::getContainer()->get('session')->getBag('contao_backend');
        $session = $objSessionBag->all();
        // Store search value in the current session
        if (\Input::post('FORM_SUBMIT') == 'tl_filters') {
            $strField = \Input::post('tl_field', true);
            $strKeyword = ltrim(\Input::postRaw('tl_value'), '*');
            // Make sure the regular expression is valid
            if ($strKeyword != '') {
                try {
                    $this->Database->prepare("SELECT * FROM " . $this->strTable . " WHERE " . $strField . " REGEXP ?")->limit(1)->execute($strKeyword);
                } catch (\Exception $e) {
                    $strKeyword = '';
                }
            }
            $session['search'][$this->strTable]['field'] = $strField;
            $session['search'][$this->strTable]['value'] = $strKeyword;
            $objSessionBag->replace($session);
        } elseif ($session['search'][$this->strTable]['value'] != '') {
            $strPattern = "CAST(name AS CHAR) REGEXP ?";
            if (substr(\Config::get('dbCollation'), -3) == '_ci') {
                $strPattern = "LOWER(CAST(name AS CHAR)) REGEXP LOWER(?)";
            }
            if (isset($GLOBALS['TL_DCA'][$this->strTable]['fields']['name']['foreignKey'])) {
                list($t, $f) = explode('.', $GLOBALS['TL_DCA'][$this->strTable]['fields']['name']['foreignKey']);
                $this->procedure[] = "(" . $strPattern . " OR " . sprintf($strPattern, "(SELECT {$f} FROM {$t} WHERE {$t}.id={$this->strTable}.name)") . ")";
                $this->values[] = $session['search'][$this->strTable]['value'];
            } else {
                $this->procedure[] = $strPattern;
            }
            $this->values[] = $session['search'][$this->strTable]['value'];
        }
        $active = $session['search'][$this->strTable]['value'] != '' ? true : false;
        return '
    <div class="tl_search tl_subpanel">
      <strong>' . $GLOBALS['TL_LANG']['MSC']['search'] . ':</strong>
      <select name="tl_field" class="tl_select' . ($active ? ' active' : '') . '">
        <option value="name">' . ($GLOBALS['TL_DCA'][$this->strTable]['fields']['name']['label'][0] ?: (is_array($GLOBALS['TL_LANG']['MSC']['name']) ? $GLOBALS['TL_LANG']['MSC']['name'][0] : $GLOBALS['TL_LANG']['MSC']['name'])) . '</option>
      </select>
      <span>=</span>
      <input type="search" name="tl_value" class="tl_text' . ($active ? ' active' : '') . '" value="' . \StringUtil::specialchars($session['search'][$this->strTable]['value']) . '">
    </div>';
    }