/** * A simple set of functions to check our version 1.0 update service. * * @package WordPress * @since 2.3.0 */ /** * Check WordPress version against the newest version. * * The WordPress version, PHP version, and Locale is sent. Checks against the * WordPress server at api.wordpress.org server. Will only check if WordPress * isn't installing. * * @since 2.3.0 * @uses $wp_version Used to check against the newest WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_version_check( $extra_stats = array(), $force_check = false ) { if ( defined('WP_INSTALLING') ) return; global $wpdb, $wp_local_package; include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $php_version = phpversion(); $current = get_site_transient( 'update_core' ); $translations = wp_get_installed_translations( 'core' ); // Invalidate the transient when $wp_version changes if ( is_object( $current ) && $wp_version != $current->version_checked ) $current = false; if ( ! is_object($current) ) { $current = new stdClass; $current->updates = array(); $current->version_checked = $wp_version; } if ( ! empty( $extra_stats ) ) $force_check = true; // Wait 60 seconds between multiple version check requests $timeout = 60; $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( ! $force_check && $time_not_changed ) return false; $locale = get_locale(); /** * Filter the locale requested for WordPress core translations. * * @since 2.8.0 * * @param string $locale Current locale. */ $locale = apply_filters( 'core_version_check_locale', $locale ); // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_core', $current ); if ( method_exists( $wpdb, 'db_version' ) ) $mysql_version = preg_replace('/[^0-9.].*/', '', $wpdb->db_version()); else $mysql_version = 'N/A'; if ( is_multisite() ) { $user_count = get_user_count(); $num_blogs = get_blog_count(); $wp_install = network_site_url(); $multisite_enabled = 1; } else { $user_count = count_users(); $user_count = $user_count['total_users']; $multisite_enabled = 0; $num_blogs = 1; $wp_install = home_url( '/' ); } $query = array( 'version' => $wp_version, 'php' => $php_version, 'locale' => $locale, 'mysql' => $mysql_version, 'local_package' => isset( $wp_local_package ) ? $wp_local_package : '', 'blogs' => $num_blogs, 'users' => $user_count, 'multisite_enabled' => $multisite_enabled, ); $post_body = array( 'translations' => json_encode( $translations ), ); if ( is_array( $extra_stats ) ) $post_body = array_merge( $post_body, $extra_stats ); $url = $http_url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' ); if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $options = array( 'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3 ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ), 'headers' => array( 'wp_install' => $wp_install, 'wp_blog' => home_url( '/' ) ), 'body' => $post_body, ); $response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) return false; $body = trim( wp_remote_retrieve_body( $response ) ); $body = json_decode( $body, true ); if ( ! is_array( $body ) || ! isset( $body['offers'] ) ) return false; $offers = $body['offers']; foreach ( $offers as &$offer ) { foreach ( $offer as $offer_key => $value ) { if ( 'packages' == $offer_key ) $offer['packages'] = (object) array_intersect_key( array_map( 'esc_url', $offer['packages'] ), array_fill_keys( array( 'full', 'no_content', 'new_bundled', 'partial', 'rollback' ), '' ) ); elseif ( 'download' == $offer_key ) $offer['download'] = esc_url( $value ); else $offer[ $offer_key ] = esc_html( $value ); } $offer = (object) array_intersect_key( $offer, array_fill_keys( array( 'response', 'download', 'locale', 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email', 'support_email' ), '' ) ); } $updates = new stdClass(); $updates->updates = $offers; $updates->last_checked = time(); $updates->version_checked = $wp_version; if ( isset( $body['translations'] ) ) $updates->translations = $body['translations']; set_site_transient( 'update_core', $updates ); if ( ! empty( $body['ttl'] ) ) { $ttl = (int) $body['ttl']; if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) { // Queue an event to re-run the update check in $ttl seconds. wp_schedule_single_event( time() + $ttl, 'wp_version_check' ); } } // Trigger a background updates check if running non-interactively, and we weren't called from the update handler. if ( defined( 'DOING_CRON' ) && DOING_CRON && ! doing_action( 'wp_maybe_auto_update' ) ) { do_action( 'wp_maybe_auto_update' ); } } /** * Check plugin versions against the latest versions hosted on WordPress.org. * * The WordPress version, PHP version, and Locale is sent along with a list of * all plugins installed. Checks against the WordPress server at * api.wordpress.org. Will only check if WordPress isn't installing. * * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_plugins( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined('WP_INSTALLING') ) return false; // If running blog-side, bail unless we've not checked in the last 12 hours if ( !function_exists( 'get_plugins' ) ) require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); $plugins = get_plugins(); $translations = wp_get_installed_translations( 'plugins' ); $active = get_option( 'active_plugins', array() ); $current = get_site_transient( 'update_plugins' ); if ( ! is_object($current) ) $current = new stdClass; $new_option = new stdClass; $new_option->last_checked = time(); // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-plugins.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { $new_option->checked[ $file ] = $p['Version']; if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) $plugin_changed = true; } if ( isset ( $current->response ) && is_array( $current->response ) ) { foreach ( $current->response as $plugin_file => $update_details ) { if ( ! isset($plugins[ $plugin_file ]) ) { $plugin_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $plugin_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_plugins', $current ); $to_send = compact( 'plugins', 'active' ); $locales = array( get_locale() ); /** * Filter the locales requested for plugin translations. * * @since 3.7.0 * * @param array $locales Plugin locale. Default is current locale of the site. */ $locales = apply_filters( 'plugins_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 plugins $timeout = 3 + (int) ( count( $plugins ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'plugins' => json_encode( $to_send ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), 'all' => json_encode( true ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); foreach ( $response['plugins'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); foreach ( $response['no_update'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); if ( is_array( $response ) ) { $new_option->response = $response['plugins']; $new_option->translations = $response['translations']; // TODO: Perhaps better to store no_update in a separate transient with an expiry? $new_option->no_update = $response['no_update']; } else { $new_option->response = array(); $new_option->translations = array(); $new_option->no_update = array(); } set_site_transient( 'update_plugins', $new_option ); } /** * Check theme versions against the latest versions hosted on WordPress.org. * * A list of all themes installed in sent to WP. Checks against the * WordPress server at api.wordpress.org. Will only check if WordPress isn't * installing. * * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_themes( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined( 'WP_INSTALLING' ) ) return false; $installed_themes = wp_get_themes(); $translations = wp_get_installed_translations( 'themes' ); $last_update = get_site_transient( 'update_themes' ); if ( ! is_object($last_update) ) $last_update = new stdClass; $themes = $checked = $request = array(); // Put slug of current theme into request. $request['active'] = get_option( 'stylesheet' ); foreach ( $installed_themes as $theme ) { $checked[ $theme->get_stylesheet() ] = $theme->get('Version'); $themes[ $theme->get_stylesheet() ] = array( 'Name' => $theme->get('Name'), 'Title' => $theme->get('Name'), 'Version' => $theme->get('Version'), 'Author' => $theme->get('Author'), 'Author URI' => $theme->get('AuthorURI'), 'Template' => $theme->get_template(), 'Stylesheet' => $theme->get_stylesheet(), ); } // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-themes.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $theme_changed = false; foreach ( $checked as $slug => $v ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) $theme_changed = true; } if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { foreach ( $last_update->response as $slug => $update_details ) { if ( ! isset($checked[ $slug ]) ) { $theme_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $theme_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $last_update->last_checked = time(); set_site_transient( 'update_themes', $last_update ); $request['themes'] = $themes; $locales = array( get_locale() ); /** * Filter the locales requested for theme translations. * * @since 3.7.0 * * @param array $locales Theme locale. Default is current locale of the site. */ $locales = apply_filters( 'themes_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 themes $timeout = 3 + (int) ( count( $themes ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'themes' => json_encode( $request ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $new_update = new stdClass; $new_update->last_checked = time(); $new_update->checked = $checked; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); if ( is_array( $response ) ) { $new_update->response = $response['themes']; $new_update->translations = $response['translations']; } set_site_transient( 'update_themes', $new_update ); } /** * Performs WordPress automatic background updates. * * @since 3.7.0 */ function wp_maybe_auto_update() { include_once( ABSPATH . '/wp-admin/includes/admin.php' ); include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' ); $upgrader = new WP_Automatic_Updater; $upgrader->run(); } /** * Retrieves a list of all language updates available. * * @since 3.7.0 */ function wp_get_translation_updates() { $updates = array(); $transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' ); foreach ( $transients as $transient => $type ) { $transient = get_site_transient( $transient ); if ( empty( $transient->translations ) ) continue; foreach ( $transient->translations as $translation ) { $updates[] = (object) $translation; } } return $updates; } /** * Collect counts and UI strings for available updates * * @since 3.3.0 * * @return array */ function wp_get_update_data() { $counts = array( 'plugins' => 0, 'themes' => 0, 'wordpress' => 0, 'translations' => 0 ); if ( $plugins = current_user_can( 'update_plugins' ) ) { $update_plugins = get_site_transient( 'update_plugins' ); if ( ! empty( $update_plugins->response ) ) $counts['plugins'] = count( $update_plugins->response ); } if ( $themes = current_user_can( 'update_themes' ) ) { $update_themes = get_site_transient( 'update_themes' ); if ( ! empty( $update_themes->response ) ) $counts['themes'] = count( $update_themes->response ); } if ( ( $core = current_user_can( 'update_core' ) ) && function_exists( 'get_core_updates' ) ) { $update_wordpress = get_core_updates( array('dismissed' => false) ); if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array('development', 'latest') ) && current_user_can('update_core') ) $counts['wordpress'] = 1; } if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() ) $counts['translations'] = 1; $counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations']; $titles = array(); if ( $counts['wordpress'] ) $titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] ); if ( $counts['plugins'] ) $titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] ); if ( $counts['themes'] ) $titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] ); if ( $counts['translations'] ) $titles['translations'] = __( 'Translation Updates' ); $update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : ''; $update_data = array( 'counts' => $counts, 'title' => $update_title ); /** * Filter the returned array of update data for plugins, themes, and WordPress core. * * @since 3.5.0 * * @param array $update_data { * Fetched update data. * * @type array $counts An array of counts for available plugin, theme, and WordPress updates. * @type string $update_title Titles of available updates. * } * @param array $titles An array of update counts and UI strings for available updates. */ return apply_filters( 'wp_get_update_data', $update_data, $titles ); } function _maybe_update_core() { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $current = get_site_transient( 'update_core' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) && isset( $current->version_checked ) && $current->version_checked == $wp_version ) return; wp_version_check(); } /** * Check the last time plugins were run before checking plugin versions. * * This might have been backported to WordPress 2.6.1 for performance reasons. * This is used for the wp-admin to check only so often instead of every page * load. * * @since 2.7.0 * @access private */ function _maybe_update_plugins() { $current = get_site_transient( 'update_plugins' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_plugins(); } /** * Check themes versions only after a duration of time. * * This is for performance reasons to make sure that on the theme version * checker is not run on every page load. * * @since 2.7.0 * @access private */ function _maybe_update_themes() { $current = get_site_transient( 'update_themes' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_themes(); } /** * Schedule core, theme, and plugin update checks. * * @since 3.1.0 */ function wp_schedule_update_checks() { if ( !wp_next_scheduled('wp_version_check') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_version_check'); if ( !wp_next_scheduled('wp_update_plugins') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_plugins'); if ( !wp_next_scheduled('wp_update_themes') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_themes'); if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') ) wp_clear_scheduled_hook( 'wp_maybe_auto_update' ); } if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) return; add_action( 'admin_init', '_maybe_update_core' ); add_action( 'wp_version_check', 'wp_version_check' ); add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 ); add_action( 'load-plugins.php', 'wp_update_plugins' ); add_action( 'load-update.php', 'wp_update_plugins' ); add_action( 'load-update-core.php', 'wp_update_plugins' ); add_action( 'admin_init', '_maybe_update_plugins' ); add_action( 'wp_update_plugins', 'wp_update_plugins' ); add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); add_action( 'load-themes.php', 'wp_update_themes' ); add_action( 'load-update.php', 'wp_update_themes' ); add_action( 'load-update-core.php', 'wp_update_themes' ); add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); add_action('init', 'wp_schedule_update_checks'); MaracanazoSesiónDeControl.com
Arrow

Maracanazo


1
José Luis Avilés

Fanático de las ondas, la casualidad quiso que en la web de una radio descubriese la magia de unir letras. En Cadenaser.com dio rienda suelta a sus dos grandes pasiones: deporte y periodismo. Ahora 'pinta' la portada de lainformacion.com.


Escrito el 28 de abril de 2013 a las 17:00 | Clasificado en Deportes

Quizá sea cuestión de mal fario o simplemente fruto de una mala gestión, pero con la Copa Confederaciones a la vuelta de la esquina y el Mundial a un año vista, Brasil parece haber defraudado a todos aquellos que confiaron en su candidatura para albergar el mayor evento deportivo del mundo.

Joseph Blatter anunció en 2007 que Brasil organizaría el Mundial de 2014 (Foto: Wikipedia)
Joseph Blatter anunció en 2007 que Brasil organizaría el Mundial de 2014 (Foto: Wikipedia)

Hay quien dice que cuando los brasileños miran el estadio de Maracaná en Río de Janeiro no pueden evitar recordar lo que sucedió allí aquel 16 de julio de 1950, aquel día que parece no tener fin. El Uruguay capitaneado por el ‘negro jefe’ Obdulio Varela arrebató la Copa del Mundo a una selección brasileña y a una hinchada que ya la acariciaban.

La decepción se adueñó de las cerca de 200.000 personas que abarrotaban el estadio y sacudió un país que quería aprovechar el torneo para postularse al mundo como una nueva potencia económica y política. Sin embargo, cuando el reloj marcaba las 16:33h, Alcides Ghiggia superó al por entonces mejor portero del mundo, el brasileño Moacir Barbosa, y hundió al ‘país de la fiesta’ en una profunda depresión.

Ahora parece como si se hubiesen reavivado las llamas de aquel fuego en que Barbosa prendió la portería donde recibió el gol y que ‘gentilmente’ le regalaron en la primera remodelación del Estádio Jornalista Mário Filho. Viejos fantasmas han regresado convertidos esta vez en plazos incumplidos para la entrega de los estadios, problemas de organización, desconfianza por parte de la FIFA, tensiones políticas…Y todo ello con la Copa Confederaciones a la vuelta de la esquina.

Primera prueba: no superada

A menos de cincuenta días para que dé comienzo la Copa Confederaciones, Brasil trabaja a contrarreloj para poder entregar los estadios que acogerán los partidos de la competición. Un torneo que normalmente sirve a las autoridades del fútbol mundial para evaluar el estado real en que se encuentra el país que, al año siguiente,  habrá de albergar el Mundial. No obstante, el país carioca llega con un marcador totalmente en contra de sus intereses.

Pese a que las autoridades brasileñas tenían de plazo hasta diciembre de 2012 para entregar los seis estadios que van a acoger la competición, tan solo han sido inaugurados cuatro de los recintos. Sin ir más lejos, el estadio que acogerá la final del torneo, el más emblemático de todos, Maracaná, ha celebrado este sábado un “evento de prueba” que los responsables de la organización, pese a contar con la presencia de la presidenta del Gobierno en el palco, ni siquiera se han atrevido a calificar de “inauguración”. Todo con el aliciente de que la FIFA tenía previsto haber realizado tres pruebas para acreditar el estado de las instalaciones.

Tal ha sido la controversia y la polémica que ha generado la situación que el secretario general de la FIFA, Jerome Valcke, ya descartó que todos los estadios estuviesen al cien por cien de sus prestaciones y, aunque aseguró que “será un torneo fantástico”, se mostró conforme con que la parte en la que han de disputarse los partidos esté en perfectas condiciones. “Llegaremos a la Copa de Confederaciones de la FIFA; será un torneo fantástico, pero no toda la parte operacional estará lista al ciento por ciento. Es imposible esperar que esto suceda al haberse acortado los plazos de preparación”, señalaba Valcke en un comunicado publicado en la página web del máximo organismo del fútbol mundial.

Muy crítico con el retraso en las obras, llegó a vivir momentos de tensión hasta el punto de que el propio ministro de Deportes brasileño, Aldo Rebelo, se opuso a que actuase como interlocutor entre Brasilia y la FIFA. Todo ello por un supuesto error de traducción que puso en boca del comisario de la FIFA que el país necesitaba una “patada en el culo” para impulsar su mundial.

Más allá de este malentendido que tanto revuelo causó entre los brasileños y por el que tuvo que pedir disculpas el propio Valcke, lo cierto es que las autoridades brasileñas están jugando al tira y afloja con la paciencia de aquel organismo que le otorgó su confianza para albergar su segundo mundial. Y es que, pese a haber entregado el Estadio Castelao de Fortaleza, el Estadio Mineirão de Belo Horizonte y el Arena Fonte Nova de Salvador, su repertorio de excusas parece inagotable para justificar los deberes que aún tienen por hacer.

En el caso del estadio Arena Pernambuco de Recife, donde está previsto que España comience su andadura en el torneo el próximo 16 de junio ante Uruguay, las autoridades de la ciudad aseguran que las instalaciones están al 95%. Una situación muy positiva de no ser porque la entrega de dicho recinto estaba prevista para el pasado 14 de abril.

Algo similar sucede con el estadio Nacional Mané Garrincha de Brasilia. Aunque en la página oficial de la Copa Confederaciones aparece como año de construcción 2012 , lo cierto es que las autoridades brasileñas aún no han celebrado su inauguración. “Ha habido lluvias muy fuertes durante los últimos quince días”, aseguraba en rueda de prensa Claudio Monteiro, responsable de la organización de la Copa Confederaciones y el Mundial de fútbol, para justificar el retraso en la instalación del césped que les ha obligado a postergar la inauguración hasta el próximo 18 de mayo.

¿Qué pasa con el Mundial?

Si la FIFA se ha mostrado benévola con el Comité Organizador Local, el Comité Organizador de la Copa Confederaciones y del Mundial, y con el Gobierno de Dilma Rouseff, ya ha advertido que de cara a la Copa del Mundo de 2014 la situación no podrá repetirse. “Quiero reiterar: es imposible que esto se repita para la Copa del Mundo de la FIFA, y así es reconocido por el gobierno federal y el Comité de Organización Local. El plazo para los estadios del Mundial sigue firme en diciembre de 2013. No habrá compromisos”, anunció Valcke en un comunicado oficial.

La organización de una Copa Mundial de la FIFA es una tarea infinitamente más compleja y exigente que la escenificación de la Copa Confederaciones, con sólo el 25% de partidos. La escala y la envergadura del Mundial requieren un periodo mínimo de preparación operacional de seis meses”, advertía el secretario general de la organización.

Y es que no se trata solo de la disputa de los partidos. Con antelación suficiente, las delegaciones de las 32 selecciones que el próximo año se den cita en Brasil habrán de concretar las ciudades que les acogerán, donde deberán contar con las instalaciones adecuadas para alojarse y ejercitarse. Es más, el pasado 9 de abril, los compañeros de la prensa brasileña informaban de que, de cara a la Copa Confederaciones que arranca el próximo 15 de junio, la Selección italiana aún no tenía un lugar donde poder llevar a cabo sus entrenamientos.

Pero no solo eso, desde la delegación de la Agencia EFE en Brasil nos han comunicado que ninguna de las ocho selecciones que comparecerán en este primer torneo ‘de ensayo’ saben dónde se hospedarán. Tampoco la Selección Española.

Además, ahí no acaba todo. No todo se reduce a lo que pase sobre el terreno de juego entre los veintidós contendientes. Como ya dijo el precavido Jerome Valcke, es necesario un tiempo mínimo de seis meses para llevar a cabo la instalación de la infraestructura de telecomunicaciones necesaria para trasladar a todo el planeta la señal en directo de lo que suceda en los 64 partidos que conforman el calendario. Una labor que debería iniciarse en enero del próximo año, por lo que no hay margen alguno de error.

En mitad del revuelo político

Si aún quedaba leña por añadir al fuego, el Gobierno de Brasil ha confesado que el “gran problema” al que habrán de hacer frente durante la celebración del Mundial será “la calidad de los aeropuertos”, tal y como desveló Luis Fernandes, representante del ejecutivo en el comité organizador. Pese a saber desde 2007 que el torneo se disputaría en su país, el equipo de Dilma Rouseff ha reconocido que las reformas en los aeropuertos no se harán efectivas hasta 2018. No obstante, para tranquilidad de la FIFA, las autoridades brasileñas ya han informado que las delegaciones de los países participantes podrán hacer uso de los aeródromos tanto civiles como militares.

En cualquier caso, la política brasileña anda agitada con motivo de esta situación nada favorable para los intereses del país. Según cuenta José Manuel Blanco desde Brasil, la polémica ha salpicado a las altas esferas del COL, donde su presidente, José María Marín, ha sido acusado de colaborar con la dictadura brasileña. Por esta razón, además de su mala relación con el ministro de Deportes, Aldo Rebelo, desde la FIFA han ‘pedido su cabeza’, algo que también ha demandado el exfutbolista Romario, ahora diputado por Río de Janeiro, que presentó un escrito con miles de firmas para exigir la salida de Marín de la Confederación Brasileña de Fútbol.

Como ya sucediese aquella fatídica tarde de 1950, parece como si nadie en Brasil supiese explicar qué fue lo que sucedió para que todo acabase así. Ahora las autoridades habrán de doblar esfuerzos para no volver a defraudar a la FIFA y, más allá de lo que sean capaces de hacer los pupilos de Luiz Felipe Scolari sobre el césped, evitar sufrir otro ‘Maracanazo’ y ganarse el respeto de todas las potencias económicas y políticas.

Los votantes dicen...
  1. […] Hay quien dice que cuando los brasileños miran el estadio de Maracaná en Río de Janeiro no pueden evitar recordar lo que sucedió allí aquel 16 de julio de 1950, aquel día que parece no tener fin. El Uruguay capitaneado por el ‘negro jefe’ Obdulio Varela arrebató la Copa del Mundo a una selección brasileña y a una hinchada que ya la acariciaban. Seguir leyendo. […]

Comparte tu punto de vista

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>