List a current posts’ taxonomy terms in a widget in WordPress

This is a simple conversion of the Taxonomy terms list plugin to a widget:

class WPSE_5394_Widget extends WP_Widget
{
    public function __construct()
    {
        parent::__construct( 'wpse5394_widget', 'Taxonomy Terms List' );
    }

    public function widget( $sidebar_args, $widget_options )
    {
        if ( ! is_single() ) {
            // I don't think we can display anything sensible on a page with multiple posts
            return;
        }

        $output = $sidebar_args['before_widget'];

        // If we want to use this we should provide a way to set the title
        if ( ! empty( $widget_options['title'] ) ) {
            $output = $sidebar_args['before_title'] . $widget_options['title'] . $sidebar_args['after_title'];
        }

        // This is the meat of the function: get the taxonomies we want to display, and get the terms for each taxonomy
        $taxonomy_names = apply_filters( 'wpse5394_taxonomies', array_fill_keys( get_taxonomies(), true ) );
        $taxonomy_terms="";

        foreach ( $taxonomy_names as $taxonomy_name => $dummy ) {
            $taxonomy = get_taxonomy( $taxonomy_name );
            $before = apply_filters( 'wpse5394_taxonomy_before', '<p>' . $taxonomy->label . ': ', $taxonomy );
            $sep = apply_filters( 'wpse5394_taxonomy_sep', ', ' );
            $after = apply_filters( 'wpse5394_taxonomy_after', '</p>' );
            $terms = get_the_term_list( 0, $taxonomy_name, $before, $sep, $after );
            if ( $terms ) {
                $taxonomy_terms .= $terms;
            }
        }

        if ( ! $taxonomy_terms ) {
            // No taxonomy terms will be displayed - don't display the widget
            return;
        }
        $output .= $taxonomy_terms;

        $output .= $sidebar_args['after_widget'];

        echo $output;
    }
}

add_action( 'widgets_init', 'wpse5394_widgets_init' );
function wpse5394_widgets_init()
{
    register_widget( 'WPSE_5394_Widget' );
}

Most options can be set via filters, like the taxonomies you want to display:

add_filter( 'wpse5394_taxonomies', 'wpse5394_taxonomies' );
function wpse5394_taxonomies( $taxonomies )
{
    unset( $taxonomies['category'] );
    return $taxonomies;
}