Usar moment.js como helper en Ember/Handlebars

moment.js es una librería completísima para trabajar con fechas en Javascript, que puedes registrar como helper para Ember de modo de facilitar todas la tarea de parsear y formatear fechas desde y hacia distintos formatos.

Ember.Handlebars.registerBoundHelper('fecha', function(stringFecha, options){
  // options.hash es un objeto con las opciones
  var args = Ember.$.extend({
    inputFormat: 'M/D/YYYY',
    outputFormat:  'D MMM YYYY'
  }, options.hash );
  var fecha = moment(stringFecha, args.inputFormat);
  return fecha.format( args.outputFormat );
});
  • El método Ember.Handelbars.registerBoundHelper() te permite registrar un helper para propiedades que están ligadas al modelo, de modo que si éste cambia se vuelven a calcular.
  • La función que registra el helper recibe dos argumentos: el valor sobre el cual actúa el helper y un objeto de opciones.
  • El uso de Ember.$.extend() permite definir parámetros variables y opcionales e indicar sus valores predeterminados.

Uso:

// de forma normal, la propiedad post_published va a estar ligada al modelo
{{fecha post_published outputFormat="YYYY/MM/DD"}}

// también puedes usarlo de esta forma para que no cambie al cambiar los datos
{{unbound fecha post_published}}

Producción literaria en masa

La diferencia, en todo caso, está entre el texto que quiere producir un lector nuevo y el que trata de anticiparse a los deseos del lector que puede encontrarse por la calle. En el segundo caso, tenemos el libro escrito, construido según un formulario adecuado para la producción en serie: el autor realiza una especie de análisis de mercado, y se ajusta a las expectativas. Con la distancia puede verse quién trabaja mediante fórmulas: basta analizar las diferentes novelas que ha escrito, para descubrir que, salvo los cambios de nombres, lugares y fisonomías, en todas se cuenta la misma historia. La que el público pedía.

Umberto Eco — “Construir el lector” (en Apostillas a El Nombre de la Rosa)

Cómo agregar un nuevo panel a WordPress Debug Bar

Una de las ventajas del plugin WordPress Debug Bar es que puedes agregar nuevos paneles según tus propias necesidades; por ejemplo, para mostrar datos de respuestas desde APIs externas o conexiones con web services u otras funcionalidades que hayas implementado de forma particualr.

// el plugin utiliza el filtro 'debug_bar_panels'
// que puedes usar para agregar nuevos paneles
add_filter( 'debug_bar_panels', 'my_custom_panel_init' );

/**
 * Inicializar tu panel personalizado
 * @param array $panels Instancias de Paneles
 * @return array
 */
function my_custom_panel_init( $panels ) {
    // Debes extender la clase Debug_Bar_Panel que forma
    // parte del plugin
    class Debug_Bar_Custom_Panel extends Debug_Bar_Panel{
        public function init(){
            // Como mínimo, debes definir el título de tu panel
            // personalizado. Se usará como título de la pestaña
            $this->title( 'Panel Personalizado' );
        }
        public function render(){
            // Construye e imprime el contenido de la pestaña
        }
    }
    // Agrega tu pestaña a la barra de depuración
    $panels[] = new Debug_Bar_Custom_Panel();
    return $panels;
}

Por supuesto, este es un ejemplo simplificado, pero es el punto de partida para tu implementación. Con un par de líneas más ya puedes tener tu propio panel:

Agregar un panel de depuración personalizado a WordPress Debug Bar

Para un ejemplo más completo, puedes revisar el código de alguno de los plugins que extienden la funcionalidad de la barra de depuración, como el repositorio de Debug-Bar-Shortcodes.