Category Archives: tips

Enviar datos entre dos select usando jQuery

Hoy me vi en la necesidad de implementar dos select los cuales se enviaban información entre ellos (los típicos usados para seleccionar ciertos elementos de un conjunto). Encontre un plugin de jQuery muy útil (básicamente hace todo por nosotros).

Se llama Dual Listbox, su utilización es la siguiente.


$.configureBoxes({
box1View:'PollIds',
box2View:'PollId',
);

con box1View establecemos cual será el select 1 y con box2View el select 2, existen muchas opciones todas documentadas en su página web.

Finalmente para enviar la información se debe usar un pequeño truco (gracias Bilson), el cual consiste en seleccionar todos elementos del select 2 utilizando javascript al enviar el formulario.




function selectAll(selectBox,selectAll) {
// have we been passed an ID
if (typeof selectBox == "string") {
selectBox = document.getElementById(selectBox);
}
// is the select box a multiple select box?
if (selectBox.type == "select-multiple") {
for (var i = 0; i < selectBox.options.length; i++) {
selectBox.options[i].selected = selectAll;
}
}
}

La función de Javascript fue extraída desde qodo.co.uk

CakePHP: Utilizar NOW() en saveField()

Durante el desarrollo de la nueva versión de buscopension.com me ha surgido un pequeño problema el cual es: Como poder actualizar un campo de una tabla utilizando el método saveField() de los modelos de cakephp.

Después de una pequeña búsqueda en google encontré la solución:


//app_model.php
function now() {
return strftime('%Y-%m-%d %H:%M:%S', time());
}

//model o controler
$this->saveField('activate_date',$this->now());

Itunes error de carpeta para la biblioteca

Acabo de instalar Itunes en mi notebook y me encontre con el siguiente error:

The folder "iTunes" cannot be found or created, and is required.

The default location for this folder is inside the "My Music" folder

Después de buscar en Foogle encontré la solución, cuando inicien el Itunes mantengan presionada la teclas Shif y luego seleccionen “Create New Library” y seleccionen donde desean que este su nueva carpeta para almacenar la biblioteca de Itunes.

Instalar Windows 7 Boot Error Code 5

Hoy iba a instalar Windows 7 en el desktop de la casa, pero el reiniciar el equipo con el dvd de Win 7 apareció el siguiente error:

Cannot boot from CD - Code: 5

Según lo que encontré en la Web es un problema de la BIOS, la cual no puede bootear el dvd, buscando y buscando (no quería actualizar mi bios) encontré la solución.

Requerimientos

  • DVD de Windows Vista

Solución

  • Reiniciar el pc con el dvd de Windows Vista, luego de seleccionar el idioma seleccionar “Reparar” , luego seleccionar “Símbolos de Sistema” cuando aparezca una ventana de DOS debemos buscar la unidad correspondiente a nuestra unidad de dvd (en mi caso fue la E:)  después escribe:

cd source

Y finalmente debemos iniciar el instalador de Windows 7

setup

Ahora ya podrás continuar con la instalación.

Espero que este pequeño tips les sirva.

CakePHP: Mini control de acceso

Hoy comencé a trabajar sistema utilizando CakePHP en el cual necesito un control de acceso para distinguir entre dos usuarios, un administrador y un usuario normal, no quise usar ACL debido a lo básico de necesidad así que me puse a desarrollar mi propio sistema de control de acceso, con una pequeña variante en el software.

La solución es la siguiente:

En mi app_controller.php

    function beforeFilter() {
        if($this->Session->check("Auth.User")) {
            if($this->_permisos($this->params,$this->Session->read("Auth.User.group_id")) == false) {
                $this->Session->setFlash("No tienes permiso para ingresar a esta area");
                $this->redirect("/");
            }
        }
    }
    function _permisos($params,$group) {

        $normal_permitido = array(
            'users' => array(),
            'tickets'=>array('add','view','index'),
            'comments'=>array('add','view','index'),
            'groups' => array(),
            'types' => array(),
            'subareas' => array(),
            'areas' => array(),
            'pages' => array('display')
        );

        if($group != 1) {
            if(array_key_exists($params["controller"],$normal_permitido)) {
                if(in_array($params["action"], $normal_permitido[$params["controller"]])) {
                    return true;
                }
                else {
                    return false;
                }
            }
            else {
                return false;
            }
        } else {
            return true;
        }
        

    }

La idea es super simple si el usuario no es administrador solo podrá acceder a ciertas acciones los controladores. En el arreglo $normal_permitido se almacenan los controladores y las acciones que tiene permitido visitar.

Ojala les sirva.

Happy baking!