Iloo

https://iloo.wordpress.com

Archivos por Etiqueta: simple

Ruby on Rails: Simple Form, remover opción nula

Explicando un poco lo que sucede, si bien se tiene una colección de registro en un arreglo por ejemplo:

options = ["option1", "option2", "option3"].

Luego se genera el elemento en la vista:

= f.input :options_selected, as: :select, include_blank: false, collection: options, input_html: {multiple: true}

Si los elementos seleccionados son option1 y option3, la manera en que se almacena es:

["", "option1", "option3"]

Aun cuando se incluyo la opción include_blank se tiene un elemento nulo. Para solucionar esto es necesario agregar una opción mas, include_hidden, y el elemento seria:

= f.input :options_selected, as: :select, include_blank: false, include_hidden: false, collection: options, input_html: {multiple: true}

Y cuando se guarden las mismas opciones se almacenara sin el elemento nulo:

["option1", "option3"]

PHP: clase para paginar datos

Una tarea bastante común, molesta y aburrida es la paginación de datos, en la red se pueden encontrar una infinidad de ejemplos, plugins, inclusive algunos programas para generar un par de archivos PHP para esta acción.

Sin duda ninguna de ellas se ajustan a los requerimientos propios, generalmente por que muchas personas realizan códigos bastante complicados y uno demora demasiado en entender como esta estructurado la función o funciones que se usan para la paginación.

En este caso encontré una clase bastante simple y sencilla de aplicar (dejo el enlace de descarga al final): la manera de usarla sería la siguiente:

Primero incluir el archivo (hay varias maneras de hacerlo):

include('php-pagination-class.php');

Instanciar la clase:

$pagination = new pagination();

Enviar los siguientes datos a la clase:

$records = 70; //Cantidad de registros en total
$items = 10; //Registros visibles por página
$currentPage = 1; //Pagina a mostrar
$paginationData = $pagination->calculate_pages($records, $items, $currentPage);

Y la clase nos devuelve el siguiente arreglo:

Array
(
    [limit] => LIMIT 0,10
    [current] => 1
    [previous] => 1
    [next] => 2
    [last] => 7
    [info] => Page (1 of 7)
    [pages] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
            [4] => 5
        )
)

Lo demás sería bastante fácil, agregar el parámetro limit a la sentencia SQL, e ir imprimiendo los enlaces con las diferentes valores de pages.

El enlace de la clase (Gracias a steve): PHP pagination class.

Mi escritorio: Junio 2011

Descripción:

Poco a nada cambio del escritorio que tengo, si sirve pues ahí se queda, pero en esta ocasión cambie algunos detalles a la última configuración que tenía, entre ellas Conky ya que el tema anterior NightDrive consumía muchos recursos y quería ahorrar un poco de espacio en la parte superior, cosa que lo logré con AWN, y lo demás es casi lo mismo que las configuraciones anteriores.