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')
		{
			$strKeyword = ltrim(Input::postRaw('tl_value'), '*');

			// Make sure the regular expression is valid
			if ($strKeyword)
			{
				try
				{
					$this->Database->prepare("SELECT * FROM " . $this->strTable . " WHERE name REGEXP ?")
								   ->limit(1)
								   ->execute($strKeyword);
				}
				catch (\Exception $e)
				{
					$strKeyword = '';
				}
			}

			$session['search'][$this->strTable]['value'] = $strKeyword;

			$objSessionBag->replace($session);
		}

		// Set the search value from the 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 " . Database::quoteIdentifier($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>';
	}
protected function searchMenu()
	{
		
		$objSessionBag = System::getContainer()->get('session')->getBag('contao_backend');

		$session = $objSessionBag->all();

		
		if (Input::post('FORM_SUBMIT') == 'tl_filters')
		{
			$strKeyword = ltrim(Input::postRaw('tl_value'), '*');

			
			if ($strKeyword)
			{
				try
				{
					$this->Database->prepare("SELECT * FROM " . $this->strTable . " WHERE name REGEXP ?")
								   ->limit(1)
								   ->execute($strKeyword);
				}
				catch (\Exception $e)
				{
					$strKeyword = '';
				}
			}

			$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 " . Database::quoteIdentifier($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>';
	}
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' ) { $ strKeyword = ltrim ( Input :: postRaw ( 'tl_value' ) , '*' ) ; // Make sure the regular expression is valid if ( $ strKeyword ) { try { $ this -> Database -> prepare ( "SELECT * FROM " . $ this -> strTable . " WHERE name REGEXP ?" ) -> limit ( 1 ) -> execute ( $ strKeyword ) ; } catch ( \ Exception $ e ) { $ strKeyword = '' ; } } $ session [ 'search' ] [ $ this -> strTable ] [ 'value' ] = $ strKeyword ; $ objSessionBag -> replace ( $ session ) ; } // Set the search value from the 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 " . Database :: quoteIdentifier ( $ 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>' ; }
Return a search form that allows to search results using regular expressions

@return string
Return a search form that allows to search results using regular expressions