/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * The below code uses the @ operator before parse_url() calls because in PHP * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @ * operator is usually a pretty strong indicator of code smell, but please don't * judge me by it in this case; ordinarily, I despise its use, but I can't find * a cleaner way to avoid this problem (using set_error_handler() could work, * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of * Pathologic. * @see https://drupal.org/node/2104849 * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = @parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $cached_settings = &drupal_static(__FUNCTION__, array()); if (!isset($cached_settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = @parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… // @todo: This is pretty horrible. Can this be simplified? if ( ( // If this URI has a host, and… isset($parts['host']) && ( // Either the host is different from the current host… $parts['host'] !== $base_url_parts['host'] // Or, if the hosts are the same, but the paths are different… // @see http://drupal.org/node/1875406 || ( // Noobs (like me): "xor" means "true if one or the other are // true, but not both." (isset($parts['path']) xor isset($base_url_parts['path'])) || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path'] !== $base_url_parts['path']) ) ) ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; $cached_settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $cached_settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $cached_settings['current_settings'] = &$cached_settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the base path. global $base_path; // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $cached_settings later and not have the changes be "permanent." $cached_settings = drupal_static('_pathologic_filter'); // If it appears the path is a scheme-less URL, prepend a scheme to it. // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it // looks like Pathologic can't handle the URL, it will return the scheme-less // original. // @see https://drupal.org/node/1617944 // @see https://drupal.org/node/2030789 if (strpos($matches[2], '//') === 0) { if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') { $matches[2] = 'https:' . $matches[2]; } else { $matches[2] = 'http:' . $matches[2]; } } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = @parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE || ( // If there's a scheme part and it doesn't look useful, bail out. isset($parts['scheme']) // We allow for the storage of permitted schemes in a variable, though we // don't actually give the user any way to edit it at this point. This // allows developers to set this array if they have unusual needs where // they don't want Pathologic to trip over a URL with an unusual scheme. // @see http://drupal.org/node/1834308 // "files" and "internal" are for Path Filter compatibility. && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal'))) ) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. // @todo Should we still try to do path correction on these files too? if (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $cached_settings['is_file'] = TRUE; } else { $cached_settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } // Is this is a root-relative url (no host) that didn't match above? // Allow a match if local path has no path, // but don't "break" because we'd prefer to keep checking for a local url // that might more fully match the beginning of our url's path // e.g.: if our url is /foo/bar we'll mark this as a match for // http://example.com but want to keep searching and would prefer a match // to http://example.com/foo if that's configured as a local path elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) { $found = TRUE; } } // If the path is not within the drupal root return original url, unchanged if (!$found) { return $matches[0]; } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. $parts['path'] = ltrim($parts['path'],'/'); // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // If we didn't previously identify this as a file, check to see if the file // exists now that we have the correct path relative to DRUPAL_ROOT if (!$cached_settings['is_file']) { $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']); } // Okay, deal with language stuff. if ($cached_settings['is_file']) { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } else { // Let's see if we can split off a language prefix from the path. if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $cached_settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are disabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($cached_settings['is_file'])) { $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = @parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return " {$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } [Sobre la beatificación] 'San Romero de América' | SICSAL

Se encuentra usted aquí

[Sobre la beatificación] 'San Romero de América'

Autor | Autores: 
Jon Sobrino, S.J.

Muchos se han preguntado desde hace tiempo cuándo canonizarán a Monseñor Romero. Otros han ido más al fondo: "si Monseñor Romero no es santo, ¿quién lo será?”. Y otros no han ocultado su sorpresa y algún enojo. Ante la rapidez con que se canonizó a la madre Teresa y a Juan Pablo II -por no hablar de José María Escrivá- no comprenden el silencio en que ha quedado Monseñor. Pues bien, parece que ha llegado la hora.

El Papa Francisco. Más que "desbloqueo”, "ruptura”

La renuncia de Benedicto XVI fue una ruptura de gran magnitud, un gesto de honradez infrecuente en Roma, y creó el ambiente necesario para otras rupturas. Y así ha ocurrido. El 20 de abril el arzobispo Vincenzo Paglia, tras un encuentro con el Papa, anunció que "la causa de beatificación de Monseñor Romero ha sido desbloqueada”. (Hablaremos de beatificación o, en general, de canonización).

Ha habido "desbloqueo” porque la causa había quedado "engavetada” sine die en la Doctrina de la Fe. Pero no parece que las razones fueran sólo burocráticas, fácilmente eliminables por un Papa. Lo que hizo el Papa Francisco tiene las trazas de haber sido una "ruptura”: jerarcas de diversas curias durante años han hecho lo posible para impedir la canonización.

Es bien conocido que, en vida, la oligarquía y demás poderes del mundo salvadoreño trataron a Monseñor con desvergüenza y crueldad. "Monseñor vende su alma al diablo”, publicó un periódico de la oligarquía. Y con estas hojas llenaron las calles de la capital: "Haga patria mate un cura”.

Pero no solo ellos estaban en contra. En curias eclesiásticas, en y más allá de El Salvador, hubo jerarcas que desde el comienzo trataron a Monseñor con prejuicios inflexibles y muchas veces sin justicia. No le perdonaban su apoyo a la teología, aunque fuese buena, si era de la liberación. Ni le perdonaban su apoyo, aunque fuera justo -y crítico-, a las organizaciones populares. Sus enfrentamientos claros y sus denuncias radicales con opresores, ejércitos, escuadrones de la muerte, gobiernos, imperio norteamericano, les causaron sorpresa y pavor.

Y para gente de Iglesia la molestia más honda, y menos confesable, es que Monseñor, en su pensar, hablar y comportarse, se parecía mucho a Jesús de Nazaret. Y sus palabras les destanteaban totalmente: "Me alegro hermanos de que la Iglesia sea perseguida… Sería muy triste que en nuestra Iglesia no hubiese sacerdotes asesinados”.

Los problemas comenzaron pronto. La nunciatura reaccionó agresivamente contra su decisión de una misa única tras el asesinato del Padre Rutilio el 20 de marzo de 1977, que fue un auténtico clamor de fe, esperanza y compromiso, solo igualada por la misa de funeral del mismo Monseñor el 30 de marzo de 1980. Con la excepción de monseñor Rivera, el resto de los obispos salvadoreños, le fueron contrarios, a veces pública y burdamente. En 1978 publicaron un mensaje, breve y malo, sobre las organizaciones populares, que contradecía frontalmente la larga carta pastoral de Monseñor Romero sobre La Iglesia y las organizaciones políticas populares. Poco antes de su muerte escribió en su diario las tres cosas que le preocupaban. La última era "su situación conflictiva” con los otros obispos. Y recuerdo la alegría que le embargó en Puebla en una reunión con obispos afectos a Medellín. "¡Qué bueno poder estar aquí como entre hermanos!”. A su funeral no asistió ninguno de los obispos de El Salvador, con la excepción de Monseñor Rivera Damas.

En la curia vaticana han hablado mal de Monseñor visitantes y residentes poderosos, funcionarios del gobierno de Estados Unidos y obispos como Alfonso López Trujillo. De Roma le enviaron visitadores en repetidas ocasiones, y en un momento dado pensaron retirarle de su cargo o inutilizarlo como Arzobispo, nombrando un obispo coadjutor sede plena, con plenos poderes. Monseñor respondió: "Estoy dispuesto a obedecer. Si me quitan solo les pido que lo hagan con dignidad para que no sufra mi pueblo”. En sus viajes a Roma compartía sus problemas con el Padre Arrupe y con el cardenal Pironio, ambos en dificultades con la curia, y se animaban mutuamente. Y en los últimos años agradeció mucho la visita que le hizo el cardenal Lorscheider.

De su visita a Pablo VI en mayo de 1977 salió feliz. De su primera visita a Juan Pablo II salió decepcionado y triste. De la segunda visita salió serenamente confortado. Después de su asesinato, Juan Pablo II, inesperadamente y sin comunicarlo al gobierno, fue a honrarlo a su tumba en Catedral. Lo llamó "celoso pastor”.

A Benedicto XVI los periodistas le preguntaron varias veces cuándo será la canonización de Monseñor Romero. En su respuesta a un periodista francés vino a decir que "el retraso no se debía a la persona del arzobispo asesinado, que, por su virtudes heroicas, merecía ser beatificado. Se debía, más bien, a la situación políticamente encontradiza que reina en El Salvador a propósito de la obra de Monseñor”. La pregunta que queda es por qué, en concreto, en esa situación "la canonización no es oportuna”.

Monseñor Urioste ha dicho muchas veces que Monseñor Romero ha sido el salvadoreño más amado y el más odiado en el país. Los poderosos, oligarquía, ejército y escuadrones de la muerte, la economía, la política y muchos de los medios, le odiaron en vida. De algunos de ellos salieron quienes lo asesinaron. Y los más recalcitrantes esa noche brindaron con champán. No es fácil para el Vaticano canonizar a Monseñor, estando vivos, y aun teniendo que estar quizás presentes por razones protocolarias en su beatificación, algunos enemigos importantes de Monseñor. Quizás sea eso lo que no se juzga "oportuno”.

Quizás tampoco sea oportuno ponerlo públicamente como ejemplo eximio de obispo, pues incomodará a algunos de ellos.

Y quizás se repita que "no hay que politizar a Monseñor Romero” porque eso podría dificultar la canonización, manida afirmación repetida sin argumentos.

Un santo

No sabemos qué se dirá en el acta de beatificación y de canonización. Nos gustaría que, además de lo que se vea sobre Monseñor desde la Roma universal, el acta diga las cosas importantes del Monseñor que vemos desde aquí.

Conversión. En la mejor tradición de las Iglesias cristianas, Monseñor, hombre bueno y ético siempre, en los setenta pasó por un cambio radical o conversión. La causa principal fue el encuentro con los pobres, ya como obispo en Santiago de María y definitivamente en San Salvador. El 12 de marzo de 1977, ante el cadáver de Rutilio Grande y dos campesinos, su vida cambió para siempre. Las innumerables víctimas y los pobres y oprimidos le llevaron a una nueva vidad definitiva. Encontró en ellos una ultimidad que coincidía con la ultimidad de Dios, y que no fue rebajada a segundo lugar por Dios. Eso pienso yo es lo que ocurrió en el corazón de Monseñor en aquellos momentos de conversión. Nunca dio marcha atrás.

A eso le ayudaron los pobres en primer lugar, pero también lo que ocurrió ya en los primeros días. Los sacerdotes a quienes tenía por izquierdistas y de Medellín le apoyaron sin condiciones, mientras que quienes habían estado con él, como obispo moderado y nada político, le dejaron solo. Y también le convenció de que el nuevo camino era el correcto, el cuerpo eclesial que inmediatamente se formó a su alrededor, con sacerdotes y religiosas, las mayorías pobres y varios profesionales, universitarios de clases medias.

Compasión contra la injusticia. Las puertas de su oficina en el arzobispado y en el hospitalito siempre estuvieron abiertas para escuchar y acoger al pobre. Y vivió en profundidad el abajamiento que acompañaba a la compasión: "A mí me toca ir recogiendo atropellos y cadáveres”, dijo en Aguilares. De ese modo se convirtió, como los obispos del siglo XVI, en defensor ex officio de los pobres.

Denuncia contra la mentira y el encubrimiento. No hace falta extenderse en esto, pero sí es importante recalcar su forma de hacerlo que no tiene paralelo, especialmente en sus homilías. Todos los domingos sin excepción, mencionaba todas las violaciones a derechos durante la semana, de los que le había llegado noticia. Mencionaba los nombres de las víctimas, el lugar y circunstancias, la situación en que quedaban los familiares. Y siempre mencionó a los victimarios -también de las organizaciones populares cuando era el caso-, muy mayoritariamente miembros del ejército, cuerpos de seguridad y escuadrones de la muerte. Y les conminó: "En nombre de Dios y en nombre de este sufrido pueblo cuyos lamentos suben hasta el cielo, cada día más tumultuosos, les pido, les ruego, les ordeno en nombre de Dios, ¡Cese la represión!”.

Contra la idolatría de la riqueza. La condenó, y por ello lo mataron. "Se mata a quien estorba”, había dicho. Estorbó al mencionar la injusticia del dinero y de la riqueza que elevó a idolatría. Y denunció muchas otras idolatrías, sobre todo la de la seguridad nacional. También condenó, a los medios de comunicación: "hoy nadie cree ya en nada”. Y a la corte suprema de justicia. "Gran parte del malestar de nuestra patria tiene allí su clave principal, en el presidente y en todos los colaboradores de la Corte Suprema de Justicia, que con más energía deberían exigir a las cámaras, a los juzgados, a los jueces, a todos los administradores de esa palabra sacrosanta, la justicia, que de verdad sean agentes de justicia”.

Monseñor ante el misterio de Dios.Monseñor habló frecuentemente de Dios. Fiel a Puebla y a la teología de la liberación, ante todo condenó a las divinidades de la muerte, los ídolos, "los que necesitan víctimas para subsistir”. Pero por encima de todo habló del Dios de Jesús, el Dios real, el Dios de su vida y el Dios de la historia. Y habló con Dios. Es conocida su oración sentida. Y ante Dios quedaba postrado y se sentía feliz. Días antes de ser asesinado dijo en la homilía: "Ningún hombre se conoce mientras no se haya encontrado con Dios… ¡Quien me diera queridos hermanos que el fruto de esta predicación de hoy fuera que cada uno de nosotros fuéramos a encontrarnos con Dios y que viviéramos la alegría de su majestad y de nuestra pequeñez”.

Los pobres de su pueblo. Monseñor los amó y los defendió. Siempre. Corría sus mismos riesgos y se lo decía. ”No abandonaré a este pueblo”. Denunciaba a sus enemigos, aunque fuese el presidente del país, el general Romero, y aunque fuese el presidente Carter a quien prohibió enviar armas. Defendió a los pobres y por ellos arriesgó todo, como sólo lo hacen los amigos de verdad. Y les comunicaba sin pudor lo que sentía por ellos: "Con este pueblo no cuesta ser buen pastor”.

El pueblo, su pobrería, le quiso como rara vez se quiere a un personaje, a un obispo. Le lloraron como solo se llora a un padre. Hoy, 33 años después, muchos le siguen queriendo de verdad. En El Salvador, le quieren de manera distinta a como quieren a otros santos populares canonizados. Muy especialmente le quieren y le recuerdan supervivientes de masacres, esposas y madres de esposos e hijos asesinados y desaparecidos, familiares de víctimas de quienes nadie se acuerda. Y sin saber exactamente qué significa "canonización”, "culto público”, "intercesión”, se alegran de que un Papa, proclame su nombre solemnemente y diga a todo el mundo que Monseñor fue una buena persona. Están contentos. Y no es esta pequeña expresión de canonización.

El acta vaticana de beatificación después de otras

No sabemos qué se escribirá en el acta vaticana de beatificación y canonización. Ojalá ofrezca al Monseñor Romero, santo tradicional y santo salvadoreño, como hemos intentado describir. Ojalá su nombre sirva de nombre a tantos que han quedado sin nombre, en El Mozote, entre los indígenas de Guatemala, entre los migrantes asesinados en México… Y ojalá dé nombre a tantos pueblos crucificados inocentes e indefensos.

Y ya que fue obispo, ojalá en el acta se recuerde a Luis Angelelli, Gerardo Valencia Cano, Juan Gerardi, Joaquín Ramos… obispos latinoamericanos asesinados. Con muchos otros, son los Padres de la Iglesia Latinoamericana desde Medellín.

Solo Dios conoce como será el acta de canonización. Nosotros terminamos diciendo que Monseñor Romero ya ha sido canonizado. Y recordamos los principales momentos de su canonización.

Monseñor Casaldáliga, en cuanto conoció su martirio, escribió el poema: "San Romero de América, pastor y mártir nuestro”. Y termina con una convicción: "Nadie hará callar tu última homilía”. Esperamos que la canonización venidera sea expresión de que siempre habrá una homilía de Monseñor.

La Iglesia Anglicana, el 31 de marzo de 2005, en presencia de la reina de Inglaterra y del arzobispo de Canterbury, colocó en el centro de la fachada de Westminster la imagen de Monseñor Romero, junto con la de Martín Luther King y las de otros ocho mártires, hombres y mujeres, de todas las iglesias cristianas del siglo XX. Esperamos que la canonización venidera guarde este espíritu ecuménico.

En la última Carta a las Iglesias, recordando el aniversario de Monseñor, escribimos: "En ti el huérfano encuentra compasión”. Con toda modestia y gozo decimos de él lo que el Antiguo Testamento decía de Yahvé. Ojalá la canonización venidera remita al Yahvé, Dios de pobres y víctimas.

Ignacio Ellacuría en el funeral de la UCA, cuatro días después de su asesinato, dijo estas conocidas palabras, audaces y lúcidas: "Con Monseñor Romero, Dios pasó por El Salvador”. Ojalá Monseñor Romero, con miles de mártires como él, hombres y mujeres, sean canonizados con estas palabras: "Por América Latina, y por muchos otros lugares del tercer mundo, Dios ha pasado entre nosotros”.

En una mañana de invierno un hombre harapiento limpiaba con esmero la tumba de Monseñor, valiéndose de sus harapos. Al termina sonríe satisfecho. Me acerqué y le pregunté: "¿Qué hace?”. Y me contestó. "Eso, limpiar la tumba de Monseñor. Porque él era mi padre”. "¿Cómo así?”. "Es que yo no soy más que un pobre. A veces acarreo en el mercado con un carretón, otras veces pido limosna y en veces me lo gasto todo en licor y en guaro, y paso la goma botado en la calle… Pero siempre me animo. Yo tuve un padre que me hizo sentir gente. Porque a los como yo él nos quería y no nos tenía asco. Nos hablaba, nos tocaba, nos peguntaba. Nos confiaba. Se le echaba de ver el cariño que me tenía. Como quieren los padres. Por eso yo le limpio su tumba. Como hacen los hijos, pues”. [Lo cuenta María López Vigil en su libro Piezas para un retrato]

Fuente: http://www.adital.com.br/site/noticia.asp?lang=ES&cod=75176

Temáticas: 

Tema Danland para Drupal creado por Danetsoft y Danang Probo Sayekti inspirado en Maksimer