it-swarm.com.de

Legen Sie den Standardwert für einen benutzerdefinierten Filter fest

Wir entwickeln eine benutzerdefinierte Komponente in Joomla 3.X. Wir haben eine Listenansicht und einige benutzerdefinierte Filter oben in der Liste hinzugefügt. Unser Problem ist, dass es zu viele Ergebnisse gibt, wenn kein Filter angewendet wird. Wir fragen uns, wie wir einen Standardwert für den Filter festlegen können, wenn die Seiten zum ersten Mal geladen werden.

Wir haben es im Konstruktor des Modells oder in der populatestate-Methode versucht, aber ohne Erfolg.

$app = JFactory::getAplication();
 $from_date = $app ->getUserStateFromRequest();

 $date = date('Y-m-d H:i:s');

 if($from_date === null)
 {
  $from_date = $date;
 }

Leider hat es nicht funktioniert und konnte keine Möglichkeit finden, es einzustellen. Vielen Dank!

3
Eva Farkasne

Schauen Sie sich das JModelList :: populateState () im Backend einer beliebigen Kernkomponente an, z. B. com_banners.

Sie können die getUserStateFromRequest-Methode verwenden, um einen Standardwert festzulegen. Siehe 3. Parameter, $default.

/**
 * Gets the value of a user state variable and sets it in the session
 *
 * This is the same as the method in JApplication except that this also can optionally
 * force you back to the first page when a filter has changed
 *
 * @param   string   $key        The key of the user state variable.
 * @param   string   $request    The name of the variable passed in a request.
 * @param   string   $default    The default value for the variable if not found. Optional.
 * @param   string   $type       Filter for the variable, for valid values see {@link JFilterInput::clean()}. Optional.
 * @param   boolean  $resetPage  If true, the limitstart in request is set to zero
 *
 * @return  The request user state.
 *
 * @since   12.2
 */
public function getUserStateFromRequest($key, $request, $default = null, $type = 'none', $resetPage = true)

Hilft das?

2
Valentin Despa