Archive for noviembre, 2009

noviembre 26, 2009 4

Listando los métodos y propiedades de un objeto en JavaScript

By in JavaScript

En ocasiones nos puede interesar saber las propiedades y los métodos que tiene un objeto, por ejemplo cuando estamos depurando. Para ello podemos hacer uso de la siguiente función:

function inspeccionar(obj)
{
  var msg = '';

  for (var property in obj)
  {
    if (typeof obj[property] == 'function')
    {
      var inicio = obj[property].toString().indexOf('function');
      var fin = obj[property].toString().indexOf(')')+1;
      var propertyValue=obj[property].toString().substring(inicio,fin);
      msg +=(typeof obj[property])+' '+property+' : '+propertyValue+' ;\n';
    }
    else if (typeof obj[property] == 'unknown')
    {
      msg += 'unknown '+property+' : unknown ;\n';
    }
    else
    {
      msg +=(typeof obj[property])+' '+property+' : '+obj[property]+' ;\n';
    }
  }
  return msg;
}

La función nos devolverá una cadena que contiene una lista con todos los métodos y propiedades del objeto, así como sus tipos y valores.

Podemos madificarla para que nos devuelva, por ejemplo, un array de objetos, lo que nos permitiría procesarlo después. Veamos como quedaría:

function inspeccionar(obj)
{
  var msg = new Array();

  for (var property in obj)
  {
    if (typeof obj[property] == 'function')
    {
      var inicio = obj[property].toString().indexOf('function');
      var fin = obj[property].toString().indexOf(')')+1;
      var propertyValue=obj[property].toString().substring(inicio,fin);
      msg[msg.length] = {'type' : (typeof obj[property]), 'name' : property, 'value' : propertyValue};
    }
    else if (typeof obj[property] == 'unknown')
    {
      msg[msg.length] = {'type' : 'unknown', 'name' : property, value : 'unknown'};
    }
    else
    {
      msg[msg.length] ={'type' : (typeof obj[property]), 'name' : property, 'value' : obj[property]};
    }
  }
  return msg;
}

Con esta versión podríamos procesar la lista para mostrarla con el formato que más nos guste. Para ello recorreriamos el array devuelto y hariamos lo deseado con cada uno de los elementos. Cada elemento sería un objeto con tres propiedades:

  • type: que contiene el tipo de dato.
  • name: contiene el nombre de la propiedad o método.
  • value: contiene el valor de la propiedad o el prototipo de la función.
Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags:

noviembre 24, 2009 0

Cambio en el diseño del blog

By in General

Los habituales os habréis dado cuenta de que el diseño del blog ha cambiado radicalmente. Tenía ganas de cambiar un poco, y de hacerlo con un tema creado por mí mismo. Después de un par de días peleándome con la documentación de WordPress ya he terminado una primera versión del tema. Todavía le quedan algunos puntos que afinar, pero ya hay una versión más o menos estable. Si veis algo raro no dudéis en comentarlo.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , ,

noviembre 20, 2009 0

Evitar el SPAM en el blog

By in Herramientas, WordPress

De un tiempo a esta parte he estado teniendo varios problemas con el SPAM, nada grave pero si muy molesto. Hasta este momento lo único que tenía para combatir este era el plugin Akismet, que me marca los comentarios de SPAM pero no los evita.

Pues resulta que hace unos día dí con este genial artícul0: “10 maneras de evitar el SPAM en WordPress” de Craftyman. Solo he añadido el plugin WP reCAPTCHA y ya no he vuelto a tener ningún comentario de SPAM. Aún quiero añadir la opción de denegar los comentario de paginas referer, como otro nivel más de seguridad, pero de momento va todo como la seda.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , ,

noviembre 18, 2009 18

Tutorial de CKEditor. Parte II.

By in JavaScript, Librerías

En la primera parte del tutorial vimos las distintas formas de configurar CKEditor. Hoy vamos a ver como configurar la barra de herramientas.

Para configurar la barra de herramientas tenemos dos formas:

  • Asignar a la propiedad toolbar una definición de la barra de herramientas.
  • Crear una propiedad toolbar_name con la definición de la barra de herramientas y posteriormente asignar a la propiedad toolbar el literal ‘name’.

Vamos a ver un ejemplo, con el segundo método, de creación de una barra de herramientas:

config.toolbar = 'Full';

config.toolbar_Full =
[
    ['Source','-','Save','NewPage','Preview','-','Templates'],
    ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
    ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
    ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
    '/',
    ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
    ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
    ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
    ['Link','Unlink','Anchor'],
    ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
    '/',
    ['Styles','Format','Font','FontSize'],
    ['TextColor','BGColor'],
    ['Maximize', 'ShowBlocks','-','About']
];

Con esto definimos una barra de herramientas muy completa. Como vemos la barra de herramientas es un array donde cada elemento es o bien un array o bien el literal ‘/’. Si el elemento es un array cada elemento es un botón. Si en lugar de un array nos encontramos con el carácter ‘/’ este fuerza un salto en la barra de herramientas, es decir nos crea una nueva barra debajo de la anterior.

Dentro de la definición de cada uno de los bloques de botones podemos encontrar el identificador de cada uno de los botones o el carácter ‘-‘ que nos crea un espacio en blanco.

La definición de la barra de herramientas debe ir en el archivo de configuración, o bien en el por defecto o en uno propio, explicado en el artículo anterior.

Podemos si lo queremos crear la barra de herramientas al crear la instancia de esta forma:

CKEDITOR.replace( 'editor1',
    {
        toolbar :
        [
            ['Styles', 'Format'],
            ['Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', '-', 'About']
        ]
    });

Como se puede ver es bastante sencillo configurar la barra de herramientas a nuestro gusto. Si teneis alguna duda intentaré resolverla en los comentarios.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , , , ,

noviembre 16, 2009 4

Tutorial de CKEditor. Parte I.

By in JavaScript, Librerías

Hace ya bastante tiempo se comenzó en este blog un tutorial sobre FCKEditor, uno de los muchos editores WYSIWYG que hay, pero se dejó abandonado. Varias fueron las razones, principalmente la falta de tiempo y la salida de CKEditor.

Después de un tiempo en el tintero, y gracias a un comentario de un lector, me he decidido a comenzar un tutorial introductorio a CKEditor. Puede servirnos como introducción el artículo “Probando CKEditor” donde se da un vistazo rápido a esta herramienta.

Lo primero que vamos a ver es como configurar nuestro editor. Para ello tenemos tres opciones:

  • Definir la configuración al crear el editor.
  • Usar el archivo config.js para colocar la configuración en este.
  • Crear nuestro propio archivo de configuración.

Definir la configuración al crear el editor:

Cuando creamos una instancia del editor con el método replace podemos indicarle la configuración de este. De esta forma nos evitamos tener que tocar la instalación del editor. Veamos como se haría:

CKEDITOR.replace( 'editor1',
    {
        toolbar : 'Basic',
        uiColor : '#9AB8F3'
    });

Hay que tener en cuenta que lo que se pasa a la función es la definición literal de un objeto, por lo que tendremos que usar la sintaxis parametro : valor, y tener cuidado de no usar el símbolo “igual que” (=).

Usar el archivo config.js para colocar la configuración:

Si editamos el archivo config.js, en la misma carpeta donde está ckeditor.js, veremos que hay una función llamada CKEDITOR.editorConfig. Dentro de esta tendremos que colocar los valores de configuración que deseemos.

CKEDITOR.editorConfig = function( config )
{
    config.language = 'fr';
    config.uiColor = '#AADC6E';
};

Definir la configuración en nuestro propio archivo:

En este caso nos crearemos un archivo donde colocaremos la configuración. De esta forma no tenemos que modificar la instalación de CKEditor y támpoco tendremos que tocar nuestras páginas, tan solo el archivo de configuración. Dentro de él definiremos la función CKEDITOR.editorConfig, podemos por ejemplo copiar el config.js como base, y luego indicaremos al editor donde se encuentra este archivo de la siguiente manera:

CKEDITOR.replace( 'editor1',
    {
        customConfig : '/custom/ckeditor_config.js'
    });

Conclusiones:

Como hemos podido ver el editor nos ofrece varias formas para configurarlo, dependiendo de nuestras necesidades o nuestros gustos. Personalmente me gusta más la tercera, aunque cada cual es libre de hacerlo a su manera.

Espero que esta primera parte les haya sido de ayuda pues esta es la base para customizar nuestro editor. Hasta la próxima entrega del tutorial, que espero pueda tenerla lista para el miércoles.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , , , ,