/** * 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'); Las claves del nuevo Código Penal de GallardónSesiónDeControl.com
Arrow

Claves del nuevo Código Penal


0
Zoomnews

ZoomNews es un diario digital de información general cuyo principios básico son la independencia y la pluralidad informativa.


Escrito el 27 de septiembre de 2013 a las 17:13 | Clasificado en Nacional

Se establece la prisión permanente revisable para el cumplimiento íntegro de las penas. La libertad provisional será sustituida por la suspensión de la condena. En la tramitación parlamentaria se creará el delito de financiación ilegal de partidos. Se endurecen la piratería, los delitos de odio o los incendios forestales.

El ministro de Justicia, Alberto Ruíz-Gallardón, en la rueda de prensa posterior al Consejo de Ministros. (lamoncloa.gob.es)
El ministro de Justicia, Alberto Ruíz-Gallardón, en la rueda de prensa posterior al Consejo de Ministros. (lamoncloa.gob.es)

“Una auténtica transformación”. Así resumía el ministro Alberto Ruiz Gallardón el nuevo Código Penal que ya tiene la luz verde del Consejo de Ministros con aspectos clave, como esa especie de cadena perpetua que es la prisión permanente revisable o el reformado atentado contra la autoridad, o lo que se consideran avances como la creación del delito de matrimonio forzoso, el castigo a los clientes de prostitución infantil aunque se produzca en el extranjero o el endurecimiento de las penas contra los incendios forestales.

De momento, el nuevo Codigo Penal aprobado por el Gobierno es sólo proyecto de Ley. Es decir, que aún debe pasar el filtro parlamentario para convertirse en realidad y, en el camino, sufrirá modificaciones como la que anunciaba la vicepresidenta Soraya Sáenz de Santamaría: la creación del delito de financiación ilegal de partidos que se quiere negociar con todos los grupos parlamentarios. El objetivo: la lucha contra la corrupción en la que ha querido poner el acento el Ejecutivo.

La polémica prisión permanente revisable

A pesar de la oposición del CGPJ el Consejo de Estado avaló finalmente la constitucionalidad de la prisión permanente revisable, una figura similar a la cadena perpetua que supone el cumplimento íntegro de las penas –que se fijan entre los 24 y los 35 años- y la puesta en libertad sólo de aquellos penados que reúnan una serie de requisitos.

Es una de las reformas que se han criticado por establecerse ‘a golpe de titular’ por casos como el de Mari Luz,el caso Bretón o el caso Marta del Castillo. Esta modificación, se incorporará al nuevo Código Penal y aplicará en los casos de homicidio que causen “especial repulsa social”. A saber: los homicidios terroristas, los cometidos contra el rey o el príncipe y contra jefes de Estado extranjeros. También en los casos de genocidio y crímenes de lesa humanidad y cuando la víctima del homicidio sea menor de 16 años o especialmente vulnerable.

Desaparición de la condicional y ampliación de la vigilada

Con el nuevo Código Penal, la condicional se regulará como una suspensión de la condena. Se puede solicitar e incluso se amplía la posibilidad de conseguirla para quienes ingresen por primera vez en prisión. Sin embargo, se otorgará de tal modo que si el penado volviera a delinquir con la pena suspendida, será devuelto a prisión para que siga cumpliendo la condena desde el momento en que quedó en suspenso.

En cuanto a las medidas de seguridad, se establecerán no por el delito sino por la peligrosidad de su autor y, por tanto, no se descarta que puedan ser  más graves que  la pena. Van desde el internamiento en centros psiquiátricos o de educación especial -que se cumplirían antes de la pena- a la libertad vigilada que se produciría con posterioridad.

La libertad vigilada se aplicaba hasta ahora en los delitos sexuales, con el Código Penal de Gallardón se amplía a otras muchas conductas delictivas con una duración mínima de tres años y máxima de cinco.

Invitación a alterar el orden público, hasta en la Red

El proyecto de Ley  de Gallardón redefine el delito de atentado que contempla la agresión, la violencia o la amenazas graves contra agentes y -ahora también- contra empleados de empresas de Seguridad si están bajo mando de los Cuerpos de Seguridad del Estado. También se incluye a este colectivo en la desobediencia que, aunque deja de ser delito, será perseguida en la Ley de Seguridad Ciudadana.

La polémica en este apartado son las novedades en torno a la alteración del orden público. El nuevo Código Penal rebaja las penas por este delito pero tipifica la difusión de mensajes que inciten a alterar el orden público. Es decir, que no sólo se castigará la convocatoria de movilizaciones no permitidas, sino también la “incitación a la comisión de desórdenes graves” en esas convocatorias. ¿Un mensaje en Twitter podría ser, por tanto, constitutivo de delito? No es descartable aunque el Ministerio asegura que, en este punto, el la ley sólo se aplicará cuando el delito sea claro y en casos de violencia graves.

Corrupción y nuevos delitos económicos

En medio de la tormenta por el ‘caso Bárcenas’ son los que, según el Gobierno y el ministerio de Justicia, mayor transformación van a sufrir. A la espera de que se tipifique, en la tramitación parlamentaria, la financiación ilegal de partidos, las modificaciones más relevantes de delitos económicos y relacionados con la corrupción son:

Administración desleal: pasa de ser un delito societario a un delito patrimonial del que cualquiera puede ser víctima. Se castigarán los contratos para prestación de servicios no útiles, los firmados sin contraprestación y los realizados a un precio superior.

Malversación (o la administración desleal de lo público): se amplían los supuestos a contrataciones a precios superiores, contratos sin prestación, utilización de lo público para fines privados… y ya no será necesario acreditar un enriquecimiento sino que bastará con la conducta desleal.

Comiso: se modifica con el objetivo de facilitar la recuperación de los activos procedentes del delito con el comiso sin condena, previsto para rebeldes o fallecidos, y con el comiso ampliado que permite decomisar los bienes procedentes de actividades delictivas distintas a las que provocaron la condena. El comiso ampliado ya existe para los delitos de terrorismo; ahora se extiende al blanqueo, los delitos contra la salud pública, falsificación de moneda o trata de seres humanos.

Piratería, crímenes de odio e incendios

En el primer caso, Gallardón explica que el objetivo es perseguir la “explotación económica, el plagio, la distribución… de una obra sin autorización de su autor y con el fin de obtener un beneficio. La novedad antipiratería en el nuevo Código Penal es la tipificación de la “facilitación de medios”. Se castigará con hasta seis años de prisión a las web que faciliten enlaces en los que descargar contenidos protegidos. Justicia destaca que, en ningún caso, serán perseguidos los usuarios, ni los buscadores ni los programas de P2P.

Crímenes de odio. En la reforma se distinguen dos tipos de conducta. Por un lado, la que incita al odio o  la violencia por motivos racistas, ideológicos, etc -se castigarán acciones y la producción de material con ese fin, así como  la negación del genocidio si incita a la violencia. El otro grupo punirá la humillación de las minorías y el enaltecimiento o justificación de los delitos cometidos contra ellas. Si esos delitos se cometen a través de internet, se agravará la condena.

Incendios Forestales. Se eleva hasta los seis años de prisión la pena para los autores de incendios forestarles que se consideren especialmente graves. Si además afectan a espacios naturales protegidos, la condena podría alcanzar los nueve años de cárcel.

Menores: mayor edad de consentimiento sexual

Hasta ahora estaba en 13 años. Cuando el nuevo Código Penal de Gallardón entre en vigor, será considerado un hecho delictivo lacomisión de un acto de carácter sexual con menores de 16 años, salvo que exista un consentimiento entre ambas partes si estas tienen similar grado de madurez y desarrollo. También será delito obligar a un menor a presenciar relaciones con terceros o contactar con él para que facilite imágenes pornográficas a través de las nuevas tecnologías.

Otra novedad importante del Código Penal es la persecución de la prostitución infantil más allá de nuestras fronteras. No sólo se elevan las penas sino que se amplía la jurisdicción de nuestros tribunales para que puedan perseguir a los nacionales, clientes de prostitución infantil, aunque hayan delinquido fuera de España.

Matrimonio forzoso o la divulgación de imágenes íntimas

Para una mayor protección de la mujer –explica Justicia- el nuevo Código Penal contempla por primera vez como delito el obligar a una mujer, con violencia o intimidación, a contraer matrimonio;  también el engaño para forzarla a abandonar o entrar en el país, el acecho u hostigamiento telefónico o cualquier tipo de seguimiento.

Difusión de imágenes íntimas o ‘cláusula Olvido Hormigos’. Otra reforma ‘a golpe de titular’ que pretende evitar casos como el de la concejal de Los Yébenes (Toledo) cuyas imágenes eróticas grabadas por ella misma dieron la vuelta a España a través de internet. El Código pena la divulgación no autorizada de grabaciones íntimas, incluso si han sido obtenidas con el consentimiento de la víctima pero divulgadas sin que ésta lo sepa.

Y más…

Desaparición de las faltas. Con el objetivo de agilizar el funcionamiento de los juzgados se suprimen las faltas que se perseguirán en la Ley de Seguridad Ciudadana o por la vía civil.

Hasta cuatro de años para los hurtos profesionales. El hurto deja de ser falta y se convierte en delito. Será un juez quien decida si es leve, y el delincuente sólo paga una multa, o si es delito a secas y ha de pagar con cárcel. En caso de que el hurto sea cometido por un reincidente profesional -como pudiera ser un carterista- la pena podría llegar hasta los cuatro años de prisión.

Despenalización de la esterilización de discapacitados. Hasta ahora era un delito esterilizar a quienes no tenían capacidad para dar su consentimiento. Con la reforma, se perseguirá por la vía civil.

Aumento de la protección animal. Se endurecen las penas, con hasta 18 años de cárcel en caso de muerte, por el maltrato de animales protegidos. El nuevo Código Penal define como tales: los animales domésticos, los habitualmente domesticados, los que vivan bajo control humano y a todos los que no vivan en estado salvaje.

Son las principales novedades de la reforma del Código Penal. Con la aprobación del proyecto de Ley en el Consejo de Ministros, se da luz verde a la remisión a las Cortes y el inicio de la tramitación parlamentaria que podría demorar su entrada en vigor hasta un año.

FuenteLas claves del nuevo Código Penal de Gallardón

Autor: Cristina Sánchez

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>