📔
MySearchSystem
  • MySearchSystem
  • Funciones
Powered by GitBook
On this page
  • __construct( $allFilters, $nameForm)
  • getAllFilters()
  • withoutFilters($request)
  • cleanFilters($request)
  • filterStatus($session, $request, $nameFilter)
  • titlesFiltersActive($request)
  • filterByNames($allElements, $request, $nameFilter, $feldsToSearch)

Was this helpful?

Funciones

Descripción de funciones.

__construct( $allFilters, $nameForm)

  • $allFilters | array()

  • $nameForm | string

$allFilters

Nombre para el front => nombre interno

$allFilters = ['Por Nombre'   => 'by_name',
              'Por Dirección' =>  'by_adress' ];
              

$nameForm

Nombre del formulario utilizado para aplicar los filtros

$nameForm = 'search_web';

Ejemplo de uso...

use DidWeb\MyResourcesBundle\MySearchSystem\MySearchSystem;

class PersonController extends AbstractController
{
    public $mySearchSystem;

    public function __construct() {
      $allFilters = ['Por nombres'=>'by_names'];
      $this->mySearchSystem = new MySearchSystem($allFilters, 'person_search_web');

    }
}

getAllFilters()

Sin parámetros devuelve la variable $this->allFilters

Ejemplo de uso ...

$this->getAllFilters()

withoutFilters($request)

$request = Symfony\Component\HttpFoundation\Request

Actualiza la variable $this->hasFilters con la cual determinamos si existen filtros o no. Se utiliza de forma interna.

cleanFilters($request)

$request = Symfony\Component\HttpFoundation\Request

Para limpiar los filtros esto limpia las variables de sesión que mantiene los filtros.

Forma de uso. En el controlador ...

  /**
    * @Route("/limpiar-filtro", name="person_admin_clean_filter")
    */
    public function cleanFilters(Request $request){

      $this->mySearchSystem->cleanFilters($request);

      return $this->redirectToRoute('person_index');
    }

filterStatus($session, $request, $nameFilter)

  • $session = $request->getSession()

  • $request = Symfony\Component\HttpFoundation\Request

  • $nameFilter = string

Se utiliza de forma interna para estabilizar las variables de sesión comprobar si existe el filtro y la variable de sesión.

titlesFiltersActive($request)

$request = Symfony\Component\HttpFoundation\Request

Devuelve la variable $this->filtersActives array donde se almacenan los filtros aplicados utilizado para sacarlo en el template. Ejemplo de uso... Aquí primero se verifica la variable hasFilters y luego se recorre el array filtersActives ...

{% if mySearchSystem.hasFilters  %}
  <div class="col-12">
    {% if mySearchSystem.filtersActives|length > 0 %}
     <div class="row pt-2 mb-2 rounded bg-light  p-1">

       <div class="col-sx-12 col-lg-10 text-left text-secondary">
        {% for key,filterActive in mySearchSystem.filtersActives %}
          Filtros aplicados...
          <span class="label-filteractive">{{ key }}</span> : 
          <strong class="value-filteractive mr-3"> {{ filterActive|raw }}</strong>
          {% endfor %}
        </div>

        <div class="text-secondary col-sx-12 col-lg-2 text-right">
          <a href="{{ url('person_web_clean_filter') }}" 
          title="Elimnar filtro"><i class="fas fa-trash-alt"></i></a>
        </div>

     </div>
    {% endif %}
  </div>
{% endif %}

filterByNames($allElements, $request, $nameFilter, $feldsToSearch)

  • $allElements = array objetos del listado

  • $request = Symfony\Component\HttpFoundation\Request

  • $nameFilter = string nombre del filtro

  • $feldsToSearch = array con los campos en los que ha de buscar.

Esta función devuelve el listado con el filtro aplicado. Ejemplo de uso en un controlador.

    public function allFilters($allElements, $request) {
      // Filtrado por nombre y apellidos
      $resultFilter = $this->mySearchSystem->filterByNames($allElements, $request,
                                                          'by_names',
                                                          ['getName', 
                                                          'getSurnameFirst', 
                                                          'getSurnameSecond']);

      return $resultFilter;
    }

PreviousMySearchSystem

Last updated 5 years ago

Was this helpful?