<?php /** * The template for displaying the header * * Displays all of the head element and everything up until the page header div. * * @package Neve * @since 1.0.0 */ ?><!DOCTYPE html> <?php /** * Filters the header classes. * * @param string $header_classes Header classes. * * @since 2.3.7 */ $header_classes = apply_filters( 'nv_header_classes', 'header' ); /** * Fires before the page is rendered. */ do_action( 'neve_html_start_before' ); ?> <html <?php language_attributes(); ?>> <head> <?php /** * Executes actions after the head tag is opened. * * @since 2.11 */ do_action( 'neve_head_start_after' ); ?> <meta charset="<?php bloginfo( 'charset' ); ?>"> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"> <link rel="profile" href="http://gmpg.org/xfn/11"> <?php if ( is_singular() && pings_open( get_queried_object() ) ) : ?> <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>"> <?php endif; ?> <?php wp_head(); ?> <?php /** * Executes actions before the head tag is closed. * * @since 2.11 */ do_action( 'neve_head_end_before' ); ?> </head> <body <?php body_class(); ?> <?php neve_body_attrs(); ?> > <?php /** * Executes actions after the body tag is opened. * * @since 2.11 */ do_action( 'neve_body_start_after' ); ?> <?php wp_body_open(); ?> <div class="wrapper"> <?php /** * Executes actions before the header tag is opened. * * @since 2.7.2 */ do_action( 'neve_before_header_wrapper_hook' ); ?> <header class="<?php echo esc_attr( $header_classes ); ?>" <?php echo ( neve_is_amp() ) ? 'next-page-hide' : ''; ?> > <a class="neve-skip-link show-on-focus" href="#content" > <?php echo __( 'Skip to content', 'neve' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> </a> <?php /** * Executes actions before the header ( navigation ) area. * * @since 1.0.0 */ do_action( 'neve_before_header_hook' ); if ( apply_filters( 'neve_filter_toggle_content_parts', true, 'header' ) === true ) { do_action( 'neve_do_header' ); } /** * Executes actions after the header ( navigation ) area. * * @since 1.0.0 */ do_action( 'neve_after_header_hook' ); ?> </header> <?php /** * Executes actions after the header tag is closed. * * @since 2.7.2 */ do_action( 'neve_after_header_wrapper_hook' ); ?> <?php /** * Executes actions before main tag is opened. * * @since 1.0.4 */ do_action( 'neve_before_primary' ); ?> <main id="content" class="neve-main"> <?php /** * Executes actions after main tag is opened. * * @since 1.0.4 */ do_action( 'neve_after_primary_start' );

Przyznam szczerze — nie miałem pojęcia o istnieniu tego filmu. Serial skończył się bez żadnego domknięcia i przez lata zastanawiałem się, co tam właściwie z tym Alfem dalej. Kiedy okazało się, że ktoś jednak pokusił się o kontynuację, odpaliłem bez wahania.

Film jest słaby. Nie tragiczny, nie nieoglądalny — po prostu słaby i nijaki, a to chyba gorsze. Jedyne, co go ratuje, to sam fakt istnienia — tzn. przynajmniej ktoś pokusił się o zamknięcie historii, która przez lata wisiała w powietrzu bez odpowiedzi. Tyle dobrego.

Bo poza tym nie ma tu za wiele do chwalenia. Alf przestał być Alfem. W serialu był centrum każdej sceny, tu stał się czymś w rodzaju katalizatora fabuły — pojawia się, coś uruchamia, znika w tle. Jego żarty funkcjonują jak osobne wysepki odcięte od głównego nurtu historii. Większość nijaka, może dwa zostają w głowie na dłużej. Ten humor sytuacyjny, który robił serial — wyparował bez śladu.

Do tego twórcy wpadli na pomysł wątku romantycznego. Alf zakochuje się w ludzkiej kobiecie. Trudno to skomentować inaczej niż krótkim „wtf”.

Ale największy grzech to całkowite wymazanie rodziny Tannerów. Sześć lat wspólnego życia, chemia, którą widzowie pokochali — i nic. Żadnej wzmianki, żadnego gestu w ich stronę. Film zachowuje się tak, jakby w ogóle nie istnieli. To nie jest tylko scenopisarski błąd, to zwykłe lenistwo.

Klimat lat 90. też mocno zgrzyta — ta estetyka familijnej komedii tamtej epoki bardzo się zestarzała.

Ogólnie: odgrzewany kotlet, który tym razem nie smakuje nawet przez sentyment.

5/10

<?php /** * The template for displaying the footer * * Contains the closing of the "wrapper" div and all content after. * * @package Neve * @since 1.0.0 */ /** * Executes actions before main tag is closed. * * @since 1.0.4 */ do_action( 'neve_before_primary_end' ); ?> </main><!--/.neve-main--> <?php /** * Executes actions after main tag is closed. * * @since 1.0.4 */ do_action( 'neve_after_primary' ); /** * Filters the content parts. * * @since 1.0.9 * * @param bool $status Whether the component should be displayed or not. * @param string $context The context name. */ if ( apply_filters( 'neve_filter_toggle_content_parts', true, 'footer' ) === true ) { /** * Executes actions before the footer was rendered. * * @since 1.0.0 */ do_action( 'neve_before_footer_hook' ); /** * Executes the rendering function for the footer. * * @since 1.0.0 */ do_action( 'neve_do_footer' ); /** * Executes actions after the footer was rendered. * * @since 1.0.0 */ do_action( 'neve_after_footer_hook' ); } ?> </div><!--/.wrapper--> <?php wp_footer(); /** * Executes actions before the body tag is closed. * * @since 2.11 */ do_action( 'neve_body_end_before' ); ?> </body> </html>