Menú de filtros

Hola Amigos:

Ejemplo de un menu de filtros

Ejemplo de un menu de filtros


Traigo para ustedes una clase programada por mi, que sirve para crear un menú de filtros. ¿Para que sirve en menú de filtros? Sirve para los casos en los que tenemos una base de datos con una tabla autos, y dentro de ella varios tipos de filtros: Autos rojos, autos verdes, y a la vez, autos caros y autos baratos.

Entonces, la idea de el menú sería la de crear lo siguiente:

Filtrar búsqueda por:

Color
-Rojo
-Azul
-Verde

Precio
-Barato
-Moderado
-Caro

Lo bueno de esta clase es que permite la recursión infinita de fitros, lo que permite usar varias categorías y subcategorías.

El código necesario para producir un menú sería el siguiente:

 
$possibleFilters = array(
		// category
		'anythingCanGoHere' => array( // key is string, ergo is category
			'name' => 'Colors',
			'0' => array( //key is_numeric, ergo is filter
				'name' => 'red',
				'url' => '?filter=red',
				'id' => 1,
			),
			'1' => array(
				'name' => 'green',
				'url' => '?filter=green',
				'id' => 2,
			),
			'2' => array(
				'name' => 'red',
				'url' => '?filter=blue',
				'id' => 3,
			),
		),
		//category w/ link
		'asLongAsItsAString' => array(
			'name' => 'weight',
			'url' => 'heavy.php',
			'0' => array(
				'name' => 'Less than 100KG',
				'url' => 'index.php?weight=100kg',
				'id' => 4,
			),
			'1' => array(
				'name' => 'between 100KG and 200KG',
				'url' => 'index.php?weight=200kg',
				'id' => 5,
			),
			'2' => array(
				'name' => 'more than 200KG',
				'url' => 'index.php?weight=300kg',
				'id' => 6,
			),
		),
	);

	$currentFilters = array(
		'1',
		'6'
	); // array de ID's que van a estar marcadas como seleccionadas

	$filterSearch = new filterSearch();
	$filterSearch->output_filter($possibleFilters, $currentFilters);

Como verán, una vez obtenida la información, el código necesario para producir el menu se reduce a dos líneas de código.

Existen varias configuraciones posibles, que deben aplicarse al objeto filterSearch

$filterSearch = new filterSearch();
$filterSearch->debug = 0; // debug? bool
$filterSearch->use_headers = 1; // usar headers alrededor de los títulos de las categorías
$filterSearch->available_headers = array(
	    '<h1 class="pagination_category">%</h1>',
	    '<h2 class="pagination_category">%</h2>',
	    '<h3 class="pagination_category">%</h3>',
	    '<h4 class="pagination_category">%</h4>',
	    '<h5 class="pagination_category">%</h5>',
	    '<h6 class="pagination_category">%</h6>',
    ); // Headers que va a utilizar la clase. Puedes usar cualquier tag HTML, solamente es importante recordar colocar un % donde iría el nombre de la categoría.
$filterSearch->extra_class = "filterSearchLink"; // clase para agregar a todos los links.
$filterSearch->output_filter($possibleFilters, $currentFilters);

¡Espero sea de utilidad!
Un saludo,
Pedro

Librerias: TimThumb

Hola Amigos,

Muchas gracias por leerme.

Vengo a ustedes otra vez con un post breve, esta vez con una librería que tiene la misma funcionalidad que phpThumb (aunque seguramente no toda), con menos del 10% de su peso total. Es una utilidad que sirve para redimensionar fotos dinámicamente, y es mas bien sencilla de utilizar.
Sigue leyendo