__construct: se utiliza para la construcción de objetos, logicamente este si es conocido si te has informado sobre las novedades de PHP5 referente a objetos.
__toString: controla lo que devuelve el objeto cuando se transforma en una cadena de texto, por ejemplo cuando hacemos un echo. Puede sernos muy util sobre todo para las trazas.
__clone: muy usado en Java, nos permite controlar la clonación de un objeto. Aunque no lo parezca, puede ser muy útil.
__set_state: devuelve la llamada a la función var_export(), asà cuando queremos exportar un objeto, devolvemos el código PHP válido que deseamos. En esta es en la función que más se detiene el autor del artÃculo y merece la pena echarle un vistazo a fondo.
OpenId es un sistema de identificación descentralizado que últimamente está dando mucho de que hablar, algunas veces para bien, y otras no tanto. Aún así, si necesitamos utilizar OpenId en nuestra aplicación, necesitaremos la librería PHP OpenID Library, la cual tiene las siguientes características:
Funciona desde PHP 4.3 hasta PHP 5.2.4
Licencia Apache Software License
Bien documentada, con ejemplos y casos de test
Usa CURL pero no depende de esta extensión
Incluye módulos para Attribute Exchange, Simple Registration y PAPE
Soporta i-names
Soporta los protocolos OpenID de forma transparente
El otro dÃa hablábamos del Zend Framework para PHP y Daniel nos hablaba de la existencia de otros frameworks, en este caso CakePHP. Y aunque a mà me está gustando Zend Framework, no quita que cada cual tenga sus gustos y prefiera otros productos, por eso nada mejor que una lista de frameworks que podemos usar.
Uno de los más populares es el que nos recomendaba Daniel, aunque parece que uno de los más completos es Seagull, pero el que tenga una versión profesional es algo que me tira para atrás. Claro, que Zoop parece igual de completo y además incluye AJAX. Taking a look at ten different PHP frameworks MVC Frameworks Written in PHP
Ahora que está tan de moda el software social y las posibilidades de compartir nuestras experiencias, sobre todo en imágenes. Es posible que no queramos que los usuarios suban imágenes con desnudos. Para ello esta clase que analiza los colores que existen en la imagen y devuelve una posibilidad de que la imágen contenga “demasiada carne”.
Claro, que este script nos puede ayudar, aunque tampoco hay que tratarlo como perfecto, porque está claro que no distinguirÃa de una foto de una cara o un grupo de caras, de una foto de una modelo posando desnuda, y muchos otros ejemplos que seguro que se pueden decir que pasarÃan este filtro.
Pero al menos si se trata de una ayuda, para localizar imágenes y luego revisarlas manualmente, a parte de incluir la posibilidad de que los usuarios avisen que determinada fotografÃa no cumple con los requisitos deseados. Class: Image Nudity Filter
VÃa / dzone
WordPress 3.4 ha añadido la opción de theme customizer, la cual permite modificar las opciones del theme y darle el aspecto que deseas de forma muy visual y sencilla. En estos momentos, por lo que he podido ver, solo permite modificar el background y poco más. Pero viendo y pegándome con el código he podido ver cómo añadir mis propias opciones.
El ejemplo que voy a poner permite elegir entre tres tipos de fuente de Google Webfonts y modificar las css para usar ese tipo de letra.
Aviso que el código quizás no sea el mejor, pero realizar ingeniería inversa no siempre es fácil y tampoco he visto otro sitio donde lo hagan.
Lo primero que se tiene que hacer es crear las opciones en el panel de customizer. Para ello hay que crear una sección (section “Fuente”) y asignarle unas opciones (settings) y añadirle unos controles (control) a las opciones. Existen controles por defecto, el de elegir el color está muy bien, pero en mi caso me he creado uno personalizado que muestra un control radio modificado para que el label del radio muestre la tipo de letra en cuestión.
add_action('customize_register', 'mi_theme_customizer', 1);
function mi_theme_customizer() {
global $customize;
if($customize) {
// La seccion
$customize->add_section('mi_font', array(
'title'=>'Fuente'
) );
// La opcion
$customize->add_setting( 'mi_font_family', array(
'control' => 'color', // esto ni idea de para que sirve, realmente no es un control tipo color y funciona
'type' => 'option'
) );
$customize->add_control( 'mi_font_family', array(
'settings' => 'mi_font_family',
'section' => 'mi_font',
'type' => 'font_radio',
'choices' => array('Trocchi', 'Great Vibes', 'Bad Script') // las fuentes de google
) );
}
}
Una vez creado los controles, añado el código que dibuja (render) mi control personalizado, primero añado los css para que dibuje las fuentes de Google y luego dibujo el control en sí. He usado Javascript en vez de PHP porque parece ser que el código no está del todo completo, y no hay un filtro para crear tu propio control, por lo que tengo que añadirlo mediante jQuery a un elemento para que el Javascript del customizer tenga en cuenta cuando selecciono una opción y refresque el preview del theme.
// Añado los css de google webfonts mediante javascript para tener luego el nombre de las fuentes y usarlo para crear los radio buttons
add_action('customize_controls_print_scripts', 'mi_customize_scripts');
function mi_customize_scripts() {
$fonts = array('Trocchi', 'Great Vibes', 'Bad Script');
?>
type == 'font_radio') {
if ( empty( $control->choices ) )
return;
$name = '_customize-font-radio-' . $control->id;
?>
label ); ?>
Y ya por último solo falta usar la opción guardada para mostrarla en el theme
add_action('wp_head', 'mi_custom_styles');
function mi_custom_styles() {
$option = get_option('mi_font_family');
// El customizer modifica este filtro para refrescar el preview
$option = apply_filters('option_mi_font_family', $option);
if ($option) {
echo "";
echo '';
}
}
Y esto es todo, no sé si hay una forma mejor de hacerlo, estoy abierto a sugerencias.