jueves, 28 de junio de 2012

PHP: logueo con LDAP

<?php

function authLDAP($username, $password){
    $ldap_domain = 'midominio';

    $adServer = "miservidor";
    $ldapconn = ldap_connect($adServer) or die("Could not connect to LDAP server.");

    $ldaprdn = $username;    

    # Descomentar si la App corre bajo Apache2 sobre Windows Server
    #ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3)

    $ldapbind = ldap_bind($ldapconn, "$ldaprdn@$ldap_domain", $password);

    if($ldapbind)
        return true;
    else
        return false;
}

authLDAP("sad", "asd");

?>

jueves, 7 de junio de 2012

javascript: Simple Libreria js

(function(){
    var Iniciador =function(){
        this.nombre = '';
            
        this.saludar = function(){
            console.log('hola');            
            return this;
        } 

        this.despedir= function(){
            console.log('adios!');            
            return this;
        }                                    
    }
    this.C = new Iniciador();          
}).call(this);   

C.saludar()
console.log("saludar y despedir....")    
C.saludar().despedir();
Test rck:
http://jsfiddle.net/ric47121/AAn6e/

javascript: agregar metodos a una clase de forma dinamica (prototype)

var Persona =function(){
    this.nombre = '';

    this.saludar = function(){
        console.log('hola');            
    }       
}

Persona.prototype.despedir = function(){ //agrego metodo de forma dinamica
   console.log('adios');                    
}
      
var pepe = new Persona();

pepe.saludar();
pepe.despedir();
Test rck:
http://jsfiddle.net/ric47121/ayQwa/

jQuery: textbox disabled y enviado por POST

HTML
<select name="docTipo" id="solapaDatosPersonales_docTipo" class="columna2" onchange="cambioTipoDoc(this)">
 <option value="1">DNI</option>
 <option value="2">NO INFORMADO</option>    
</select>

<br/>
<input type="text" name="docNro" id="solapaDatosPersonales_docNro" class="columna4" value="asd"/>
JS
function cambioTipoDoc(control){
    console.log(control.value)
    if(control.value == 2){ //no informado
        //$("#solapaDatosPersonales_docNro").attr("disabled", "disabled");
        $("#solapaDatosPersonales_docNro").attr("readonly", "readonly");
        $("#solapaDatosPersonales_docNro").css("background", "#f0f0f0");
    }
    else{
        $("#solapaDatosPersonales_docNro").removeAttr("readonly");
         $("#solapaDatosPersonales_docNro").css("background", "#fff");
    }
}
Test rck:
http://jsfiddle.net/ric47121/nDhLe/

miércoles, 6 de junio de 2012

JavaScript: Colecciones findBy

function getprop(x) { return function(o) { return o[x]; } }
    
var pablo = {name: 'pablo',edad: 15};     
//var p ='name'
//console.log(pablo['name'])//pablo
//console.log(pablo[p])//pablo    
    
    var amigos = {
        arr_amigos : [{name: 'pepe',edad: 52},{name: 'ruben',edad: 12},{name: 'oscar',edad: 32}],
        findBy : function (prop, value){
                    return _.find(this.arr_amigos, function(p){ return p[prop] == value; });  
                }                                        
    }    
    
//console.log(amigos)
//console.log(_.find(amigos.arr_amigos, function(p){ return p.name == 'pepe'; })) //ok
console.log(amigos.findBy("name","pepe"))        //ok​​​​​​​​​​​

Test rck:
http://jsfiddle.net/ric47121/wnCKk/

UndersCore.js: map, filter, find (javascript como funcional)

/*
var res;

res = _.map([1, 2, 3], function(num){ return num * 3; });
console.log(res); //3,6,9

res = _.map({one : 1, two : 2, three : 3}, function(num, key){ return num * 3; });
console.log(res); //3,6,9
*/

/*------*/
var amigos = [{name: 'pepe',edad: 52},{name: 'ruben',edad: 12},{name: 'oscar',edad: 32}];

var amigosMayores = _.filter(amigos, function(p){ return p.edad > 18 })
console.log(amigosMayores); //pepe y oscar

var nombres = _.map(amigos, function(p){ return p.name })
console.log(nombres); //["pepe", "ruben", "oscar"] 
                                         
var pe = _.find(amigos, function(p){ return p.name == 'pepe'; });                                         
console.log(pe);

Test rck:
http://jsfiddle.net/ric47121/NPfQX/1/

Pagina Oficial:
http://documentcloud.github.com/underscore/

JavaScript: Programación Funcional - Filter

function filter(array, f) { var r = []; for (var i in array) { if (f(array[i])) { r.push(array[i]); } } return r; }


/*ejemplo 1*/
function par(x) {return x % 2 == 0} 
var res = filter([1,2,3,4,5], par);    
console.log(res)    //[2,4]

/*ejemplo 2*/
var amigos = [{name: 'pepe',edad: 52},{name: 'ruben',edad: 12},{name: 'oscar',edad: 32}];

    var amigosMayores = filter(amigos, function(p){
        return p.edad > 18
    })

    console.log(amigosMayores) //pepe y oscar


Test rck:
http://jsfiddle.net/j3x5K/1/

Fuente:
http://www.slideshare.net/leo.soto/javascript-funcional

YUI 2: Test Panel con Eventos

var panel;

function init() {
    // Instantiate a Panel from markup
    panel  = new YAHOO.widget.Panel("panel1", { 
                width:"320px", 
                visible:false, 
                constraintoviewport:true 
              });

    panel.render();

    YAHOO.util.Event.addListener("show1", "click", panel.show, panel, true);
    YAHOO.util.Event.addListener("hide1", "click", panel.hide, panel, true);

    panel.subscribe("beforeShow", function(){
        console.log("antes de renderizar panel");                
    });

}

YAHOO.util.Event.addListener(window, "load", init);

http://jsfiddle.net/zNF4B/
cheatsheet

viernes, 1 de junio de 2012

HTML 5: Test sessionStorage

var amigos = [{name: 'pepe',edad: 52},{name: 'ruben',edad: 22}];

try {
    if (!sessionStorage.amigos) {
        sessionStorage.amigos = JSON.stringify(amigos);
        console.log("cargado desde DB");
    }
    else
    {
        console.log("cargado desde el storage");
    }
    
} catch(e) {
    alert("navegador no soporta HTML 5 Storage")
}

var friends = JSON.parse(sessionStorage.amigos);
console.log(friends)

http://jsfiddle.net/8DL5f/3/