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

Clases: paginación en PHP

Hola amigos,

Quiero dedicar un instante para recomendar esta espectacular clase, y de paso aumentar el PR de su autor, merecidamente:

http://mis-algoritmos.com/digg-style-pagination-class/
http://mis-algoritmos.com/2007/03/16/some-styles-for-your-pagination/

Es una paginación espectacular, sencilla, liviana, y altamente configurable.

No necesito decir mas. :)

¡Un saludo!
Droope

Localizar software.

Hola, muy buenas tardes para todos. Hoy voy a hablar, directo y al grano como siempre, el procedimiento que lleva localizar un script.

Primero que nada quisiera aclarar, que localizar es muy distinto a traducir. Traducir es cambiar el texto en el programa de “Hola” a “Hello”, mientras que localizar consiste en separar el texto del software, de forma tal que el software quede, por ejemplo en un archivo “index.php”, y el texto, a través de algún medio como arrays o variables, queden almacenados en un archivo separado, independiente de todo código.

Esto es óptimo, ya que permite que las traducciones y el software avancen juntos, sin que uno enlentezca el otro. Además, permite a un traductor traducir el texto sin tener conocimientos en programación.

El procedimiento es sencillo:

  1. Descargar esta clase, que nos facilita la programación del asunto. Además, esta clase, al recibir un visitante, intenta adivinar el lenguaje que sería mas óptimo.
  2. Subir la clase a nuestro servidor PHP, y agregar el código que corresponde en nuestro header. La clase es sencilla, y agradable de observar.
  3. Reeplazar el texto que se muestra al usuario, por variables del estilo $lang[‘descargarAhora’]
  4. Colocar el texto de las variables en el archivo de traducción correcto. En el caso de que nuestro lenguaje sea español, modificamos el archivo es.conf, que está en la carpeta lang. El archivo solamente contiene un array, embedido en tags php, con elementos como $lang[‘descargarAhora’]. Nótese que la clase tiene un archivo readme con mas información en el tema y archivos de ejemplo.
  5. Cambiar el lenguage por defecto a el nuestro en el archivo index.conf, que está instalado en la carpeta donde instalamos la clase.

Y listo, nuestra aplicación estaría localizada, y podríamos pedirle a un traductor que traduzca muestra aplicación solamente con enviarle el archivo es.conf.

¡Espero que les haya resultado de interés, y que decidan localizar su aplicación! Mucha gente podría potencialmente comprar o utilizar su código open source, pero no lo hace porque no llega a entender nada. Además, en caso de que tengamos pensado sacar versiones en inglés y en español, esto nos permite no tener que actualizar el código principal cada vez que alguien quiera corregir una falta de ortografía.