/** * 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); } MONSEÑOR ROMERO. ENSÉÑANOS A ESTAR EN LA REALIDAD. | SICSAL

Se encuentra usted aquí

MONSEÑOR ROMERO. ENSÉÑANOS A ESTAR EN LA REALIDAD.

Autor | Autores: 
Rubén Fúnez. Doctor en Filosofía. Catedrático de la Universidad Luterana Salvadoreña

Pensar en Mons, Romero, es pensar en nuestra propia praxis como cristianos. Monseñor Romero fue asesinado porque supo responder a la realidad. Por eso su respuesta a esa realidad es un guión siempre presente, que nos fuerza siempre a preguntarnos ¿Qué estamos haciendo con esta realidad que se empeña en negar la misericordia y el amor de Dios?

Encarnarse con personas como Monseñor Romero es, si quieren, erigir una especie de tribunal que con ultimidad nos exige volver la mirada hacia uno mismo. Y esto es bueno. Monseñor Romero respondió a una situación difícil, incierta, dolorosa, en una palabra: Terrible. Fue una situación en la que campeaba la muerte[1]. Volver los ojos a Monseñor Romero nos fuerza a que nosotros también respondamos también a la situación en que nos ha tocado en suerte vivir.

Vamos a abordar brevemente cinco cuestiones: 1. Enséñanos a tener fe, 2 Enséñanos a amar a tus pobres, 3 Enséñanos a estar en la realidad 4. Enséñanos a mantener la esperanza. 5 Inspira nuestra fe.

1.      Enséñanos a tener fe.

Dice el Padre Jon Sobrino, que Monseñor Romero fue un hombre de Dios[2]. No solo porque Dios optara por Monseñor Romero, sino porque Monseñor Romero optó por Dios. Esto significa que una de las características principales fue su profunda fe en Dios; Monseñor Romero creyó en Dios. Desde esta perspectiva, podemos perfectamente hablar de la fe e Monseñor Romero. Monseñor Romero no se aproximó a Dios desde una teoría incluso cuando hablaba cada domingo de Dios no hacía, radicalmente dicho, una ponencia sobre Dios, sino que sus homilías era su práctica de Dios[3]. Monseñor Romero vivía a Dios. Su referencia última no eran las organizaciones populares, la realidad tan cruenta que le toco

vivir, sino su profunda fe en el Dios de Jesucristo[4].

Hay al menos una cuestión que habría que decir de lo anterior: estamos permeados por la increencia y en nuestro contexto se trata de una increencia muy peligrosa: nuestro país es un país muy cristiano, pero es uno de los lugares en los que existe la pobreza más escandalosa. Entonces o no somos realmente cristianos o, el Dios en el que decimos creer no es el Dios de Jesucristo. Decimos creer en Dios cuando en rigor en quien creemos es en un ídolo creado a nuestra imagen y semejanza.

La figura de Monseñor Romero, no solo nos enseña a tener fe[5],  sino que nos enseña en quién tener fe. Desde esta perspectiva, Jon Sobrino, observa que “ El Dios de Mons Romero fue ciertamente el Dios de Jesús. Un Dios por lo tanto que es padre, bueno para los hombres, que tiene una buena noticia para ellos. Un Dios sobre todo, de los pobres que los defiende y los ama por el mero hecho de serlo, que oye los clamores de su pueblo y baja del cielo a liberarlos[6]

2.      Ensénanos a amar a tus pobres.

Hay en la fe una intrínseca  exigencia de moverse: la fe nos desestabiliza; la fe nos saca de nuestra zona de seguridad;  la fe nos exige, como en el caso de Abraham, dejar la propia casa; Podemos decir que ser cristianos exige estar en movimiento y este movimiento es de una importancia crucial para nuestra fe.

También en el caso de Mons Romero se da esta exigencia; en su caso no podemos hablar de una vida oculta, pero ciertamente la vida que llevo anteriormente a su nombramiento como Arzobispo, no tuvo ni la publicidad, ni la importancia que tuvieron sus últimos tres años.

De hecho, para algunos fue un obispo de buena voluntad, un hombre piadoso de oración, un celoso pastor. Incluso estaba considerado como espiritualista y, consecuentemente, reacio a inmiscuirse de modo directo en asuntos temporales. Trataba con los ricos y no desdeñaba a los pobres. Pero con todo ello, apenas representaba algo en la Iglesia de El salvador y más bien era considerado como oponente al nuevo movimiento eclesial despertado en Medellín. Interesado, sobro todo, en la ortodoxia, desconfiaba de las nuevas formulaciones de la teología de la liberación.

¿Donde estribó, donde está la cusa que fuera tan masivamente conocido? Hay que decir, que no estuvo en lo que dijo, pues lo que dijo: sus homilías, sus discursos, sus denuncias, fueron sucesos derivados.  Derivados de una opción primaria, de una opción radical: su opción por los pobres. Hay que decirlo, se trato de una opción. Desde esta perspectiva, tuvo que rechazar algunas otras opciones, si solo hubiera existido la posibilidad de asumir las luchas de los pobres, esta decisión por muy importante y por muy cristiana que hubiera sido, no sería una estricta opción. Se trata de una opción justamente porque fue asumida frente – a, respecto – a, en contra – de otras opciones: la opción del gobierno, que la catalogó como reformas con represión; la opción de la oligarquía, que para él era claramente una opción pecaminosa; y la opción por los pobres, en la que veía mucha esperanza[7].

La opción por los pobres no fue un asunto meramente de análisis económico; no opto por los pobres simplemente porque eran mal remunerados y explotados; no fue meramente una opción ética, no opto por los pobres porque los pobres eran buenos; no fue una opción intelectual, es decir, porque a partir de esa opción entendiera mejor la situación del país; sino que fue una opción meramente religiosa: esa opción le reveló la realidad de Dios. Dios se revela en los textos evangélicos, pero lo que dicen esos textos es que si queremos saber cómo es Dios, ese conocimiento pasa por la opción por los pobres. Lo que dicen los textos evangélicos corre el peligro de no ser explicitado por mucho y por mucho que los leamos; pero comienzan a ser claros, diáfanos y trasparentes, es decir, podemos ver a través de ellos, cuando se opta por los pobres. Los pobres le enseñaron a Monseñor Romero a leer la biblia.

3.      Enséñanos a estar en la realidad.

Entonces la fe de Monseñor Romero, fue la fe en un Dios que amaba a los pobres. Sin embargo tener fe en un Dios que ama a los pobres y que justamente se ha descubierto en una previa opción, no es fácil. Frente a ese Dios fácilmente se pueden hacer nuestras, las palabras de los discípulos: ¡Duras son estas palabras¡ ¿Quién puede oírlas? Y optar, como alguno de ellos, por retirarse y no seguirle. Sin embargo, como todos sabemos, no fue el caso de Monseñor Romero, sino que descubrir al Dios de Jesucristo lo llevo de modo cada vez más progresivo a comprometerse con su opción; esto le obligo a tener que conocer la realidad en la que estaba situado. Lo hizo de dos modos: En primer lugar, escuchando esa realidad y comprometiéndose con ella: le dolía profundamente el pesar que embargaba a los familiares de desaparecidos, que lo único que ansiaba era encontrar el cadáver de sus familiares para poder velarlos y enterrarlos en un lugar en el que pudieran luego ser visitados.

Le dolía profundamente la dolorosa terea de ir recogiendo los cadáveres dejados por la cruenta represión. Entonces Monseñor Romero se dejaba enseñar por la realidad, pero también dejaba que esa realidad le afectara en lo más profundo de su ser. Monseñor Romero reaccionaba en sus homilías cómo reaccionaba porque desde el fondo de su corazón salía tumultuosamente el dolor de la situación en la que se encontraba su pueblo. Se trataba de un dolor re – cordado, es decir, de un dolor que volvía a pasar por su corazón y por eso tomaba una enorme fuerza de denuncia; por eso sus palabras tenían esa fuerza telúrica que ponía a temblar hasta a los mismos oligarcas o los jefes militares, como cuando les ordenó a los soldados que cesaran la represión[8].

En segundo lugar, Monseñor Romero, escuchaba a los expertos en ciencias sociales y en teología para poder identificar mejor los dinamismos que entretejen esta realidad. Por lo tanto, creer en el Dios de Jesucristo, implica el cristiano esfuerzo de mantenerse en la realidad. Como hoy no es tan fácil estar en la realidad; como hoy, muchas veces, la fe que decimos tener, en lugar de mantenernos en la realidad nos saca de esa misma realidad. Hay que pedirle con humildad que nos enseñe a mantenernos en la realidad.

4.      Enséñanos a mantener la esperanza.

Una cosa es dramáticamente cierta: Monseñor Romero, a pesar de las amenazas de muerte, a pesar que la muerte fue una realidad cada vez más cercana en su propia vida, a pesar de que vio como se les daba muerte a los pobres, se mantuvo coherente dentro de su opción. ¿Hay algo que nos lo pueda explicar? Ya dijimos que Monseñor Romero fue un hombre de una profunda fe, pero se trataba de una fe que se concretaba en realizaciones históricas. Esas realizaciones históricas, o, al menos, que pudieran hacerse realidad, fueron unas de las cuestiones que jalonaban la praxis de Monseñor Romero. En otras palabras Monseñor Romero fue un hombre con una inquebrantable esperanza. Esperanza en el Reino de Dios, que él traducía diciendo que la gloria de Dios es el pobre que vive; la esperanza de Monseñor Romero consistía en una tierra en la que los pobres pudieran vivir y vivir con dignidad, vivir con justicia, vivir sin tener que ser perseguidos y matados, vivir como hijos de Dios; la esperanza de Monseñor Romero, fue la esperanza de Jesús.

Pero la esperanza de Monseñor Romero tenía otra cara. Monseñor Romero miraba esa cara en las potencialidades que tenían los mismos pobres. Confiaba en que los pobres estaban descubriendo que ellos no son destinatarios de unos beneficios provenientes de los de arriba, sino que son sujetos y que ellos mismos pueden construir una sociedad más justa y humana; por ello Monseñor Romero vio con muy buenos ojos que los pobres se organizaran, porque veía en la organización el reflejo de la confianza que estaban adquiriendo en sí mismo. Cuando los pobres confíen en sí mismos, esa va ser señal que el reino de los cielos está muy cerca[9].

Hoy más que nunca tenemos que proponernos construir las condiciones para seguir esperando, estamos en una sociedad en la que desde todos lados se nos dice que se está poniendo en peligro lo que tenemos de humanos. La “humanidad”  es una conquista. Crecemos hombres y mujeres, pero vamos creciendo en humanidad; por eso existen hombres que no se comportan como humanos, sino que se comportan como cualquier bestia salvaje, y es que la humanidad se conquista. Ser capaces de ver al otro como vulnerable, indigente, como otro que me está exigiendo que lo reconozca sin menoscabo de su integridad, es algo que no se consigue de la noche a la mañana.

Estamos en un contexto en que la humanidad está en crisis: En la medida en que crece más la inhumanidad, en esa misma medida ignoramos a los otros y a las otras. De hecho, parece que los otros y las otras han dejado de importarnos, el rostro del otro, la angustia del otro, la desesperación del otro, el grito del otro ha dejado de sacudir nuestras conciencias.

5.      Enséñanos a morir para dar vida.

¿Qué pensó Monseñor Romero de su propia muerte? Hay que comenzar diciendo que primariamente no estaba preocupado por morirse. Digamos que si alguna preocupación tenía era por vivir, pero vivir él y todos los que morían antes del tiempo. Es evidente que justamente porque hemos venido a vivir y a vivir con abundancia, como nos recuerda San Juan, el compromiso primario de todos los cristianos en con la vida. Pero como es la misma vida la que está amenazada, como es la misma vida la que no se supone, entonces hay que vivir luchando por la vida, hay que vivir exigiendo vida y vida en abundancia.

Dado que luchar por la vida es tenso, y los que tensan en el otro polo, tienen el poder de dar muerte, necesariamente los hombres se ven forzados a tener que pensar el sentido de su muerte. En ese sentido Monseñor Romero tuvo que pensar acerca del sentido que pudiera tener su muerte.

Una cuestión previa: no toda muerte da vida, y el Padre Ricardo Falla nos ha recordado que “esa” muerte la que da vida[10]. La muerte de Monseñor Romero tiene sentido porque no fue cualquier muerte, sino “su” muerte. Hay una especie de continuidad entre el modo como vivió y el modo como murió. Vivió, al menos sus últimos tres años, acompañando a su pueblo, denunciando a aquellos que le arrebataban la vida a su pueblo, como dice el profeta Amós, a todos aquellos que se banqueteaban a su pueblo[11]. Todo esto lo hacía principalmente desde su catedral, desde catedral, desde su cátedra. Así murió. Murió como vivió, y como vivió exigiendo vida, su muerte es una exigencia de vida. Por esa razón Monseñor Romero, estaba íntimamente convencido que si lo mataban iba resucitar en el pueblo salvadoreño. Monseñor Romero por lo tanto pensó que su vida iba ser continuada por todos aquellos que amaban la vida. Desde esta perspectiva reunirse a pensar sobre Monseñor Romero lleva en sí misma la exigencia de preguntarse si continuamos luchando porque los pobres tengan vida.

6.      Inspira nuestra fe.

Es una lucha que continúa la lucha de Monseñor Romero, en ese sentido la lucha recibe aquella inspiración. Quiero decir que se trata de una inspiración real, yo he visto dos casos que pueden dar cuenta de esto que estoy diciendo. El primer caso es justamente el caso de un teólogo, me refiero al Padre Jon Sobrino, a quien le debo lo que sé de Monseñor Romero.

Cuando Sobrino habla de Monseñor Romero delata un profundo amor. Sobrino no admiraba a Romero, Sobrino lo amaba y ese amor fue el que le permitió poner ante los ojos de sus lectores el retrato teológico de Romero. Para Sobrino, Dios hablaba por medio de Monseñor Romero, este es el sentido último y radical de concebir a Romero como Profeta.  Hablaba en lugar de Dios. Y Ellacuría con el mejor sabor Juaneo no duda en afirmar que con Monseñor Romero Dios pasó por El Salvador.

Para Jon Sobrino, Monseñor Romero fue el pastor de su pueblo, esto lo vio con toda claridad en el momento en el que se le ofreció seguridad personal y que Monseñor Romero rechazó justamente porque su pueblo, carecía de seguridad. Esto lo hizo precisamente por la firme convicción de que el pastor vive la suerte de sus ovejas.

Para Jon Sobrino, Monseñor Romero fue un mártir porque dio su vida por la causa de Dios. Monseñor Romero vio con toda claridad que la gloria de Dios era que el pobre vivía, y esto fue lo que lo impulso hasta situaciones casi sobre humanas, para defender esa vida que quien la exigía con ultimidad era Dios, y justamente porque la exigió fue porque encontró la muerte.

El segundo caso han sido las celebraciones del pueblo de Dios, no celebran la muerte de Monseñor Romero, sino que celebran su vida. Para los cristianos salvadoreños ha sido bueno e inspirador tener a Monseñor Romero, porque como Jon Sobrino no se cansa de decir, Monseñor Romero fue un don de Dios.

Conclusión

Claro el peligro siempre presente, es que olvidemos la mordiente de la profecía de Romero, que simplemente lo recordemos sin la exigencia de embarcarnos en la penosa faena de luchar por la vida. Es la tentación de todos los fariseísmos que para callar la voz del profeta se aprestan como denuncia San Lucas, a edificar mausuleos a los profetas que mataron sus padres. Es decir, que la inspiración de Monseñor Romero se agote simplemente en la visita que hacemos a su cripta cada 24 de marzo llevándole flores.



[1] Sobrino en su afán por describir en toda su dureza la pobreza dice: “Pobres son los masacrados en en el Sumpul, El Mozote, Panzos, los torturados, los desollados, los que aparecen con sus rostros corroídos con ácido, los decapitados en serie,  los cadáveres que aparecen en cementerios clandestinos… los cádaveres aún agonizantes que aparecen en el carro de la basura” J. Sobrino,. “ La esperanza de los pobres en América Latina”, misión abierta (1982) P.114.

[2] Cfr. J. Sobrino, “Monseñor Romero: Un hombre de este mundo y un hombre de Dios”, Estudios Centroamericanos p. 289.

[3] Dicho con precisión Monseñor Romero proclamo la voluntad de Dios sobre la historia del país”. Habló religiosamente, es decir, de Dios. J. Sobrino, Monseñor Romero: Profeta de El Salvador, Estudios Centroamericanos, P. 1005.

[4] Recuerda J. Sobrino que “la fe en ese Dios significó estructuralmente que Monseñor Romero nuca adecuó ningún proyecto humano concreto a la plenitud del Reino de Dios, lo cual no lo llevo a relativizar a todos por igual…, pero si a medirlos según su distancia al Reino de Dios”. J. Sobrino, Monseñor Romero: Un hombre de este mundo y un hombre de Dios. Estudios Centroamericanos, P.294.

[5] Cfr. J. Sobrino, Mons. Romero, mártir de la liberación, Estudios centroamericanos, P. 254.

[6] J. Sobrino, “Mons. Romero: un hombre de este mundo y un hombre de Dios”. Estudios Centroamericanos, P.293.

[7] Dicho desde el profundo afecto de Sobrino, “estos pobre le desgarraron el corazón y nunca se le cerró la herida. El dolor de los pobres penetró hondo en su corazón”. Ibid. 292.

[8] Cfr. J. Sobrino, Mons. Romero: Profeta de El Salvador, estudios Centroamericanos, P. 1008.

[9] Si nos preguntamos qué es lo que está en juego en la esperanza de los pobres, hay que contestar que está en juego la misma presencia de Dios. Dice Sobrino que “de lo que se trata en el fondo es de que la realidad  de los pobres, su esperanza y su pobreza tome la palabra, y que a través de ellas se haga presente la palabra de Dios”. J. Sobrino,. “LA esperanza de los pobres en América Latina”, Misión abierta, 1984, P. 112.

[10] Cfr. R. Falla,. Esa muerte que nos hace vivir, UCA editores, San Salvador 1993.

[11] Am. 26 – 8.

 

Temáticas: 

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