
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
Bogotá, 14 de abril de 2021. A partir del 14 de abril y hasta el 14 de julio se abre a la convocatoria nacional del VII Salón BAT de Arte Popular, Colombia y el Medio Ambiente. Dirigida a los artistas empíricos para que hagan un llamado sobre la responsabilidad que todos tenemos en el cuidado y la preservación del medio ambiente.
El Salón BAT de Arte Popular es un espacio de reconocimiento del arte popular en Colombia que promueve el emprendimiento, fortalece la interacción del público con el arte empírico a través de exposiciones, actividades académicas y pedagógicas, producciones audiovisuales y actividades en plataformas virtuales que fomentan la creatividad y propician la comercialización del arte popular, contribuyendo al desarrollo social y económico del país.
Es la continuación de un proyecto que se inició en el año 2004 y que a lo largo de sus seis ediciones se ha constituido como una iniciativa con impacto nacional sobre este género de artes plásticas en nuestro país, así como una plataforma de cobertura nacional, donde los artistas y sus obras se presentan como interpretación de las dinámicas socioculturales de las regiones del país.
El lanzamiento de la convocatoria nacional se realiza con de la Gobernación de Bolívar, el Instituto de Cultura y Turismo de Bolívar ICULTUR, para hacerle un homenaje al artista magangueleño Eduardo Butrón Hodwalker e invitar a los artistas de todos los territorios de Colombia a que participen.
En su séptima versión el Salón BAT de Arte Popular cuenta con el apoyo del Ministerio de Cultura, programa Nacional de Concertación Cultural; el Gobierno de Colombia con los Programas de Desarrollo con Enfoque Territorial PDET, el Ministerio de Comercio, Industria y Turismo, con el Fondo Nacional del Turismo FONTUR; el Instituto Nacional Penitenciario y Carcelario INPEC, el Museo Nacional de Colombia, la Alcaldía Mayor de Bogotá con la Secretaría de Cultura, Recreación y Deporte y la Fundación Gilberto Alzate Avendaño ( FUGA), la Gobernación de Bolívar, el Instituto de Cultura y Turismo de Bolívar ICULTUR, el Museo Histórico de Cartagena de Indias MUHCA, la Conferencia Episcopal de Colombia, Fenalco Naranja, Mentes a la Carta, El Tiempo Casa Editorial, Servientrega, RTVC Señal Colombia y RTVC Señal Memoria. Así como las secretarías e institutos de Cultura y los principales museos del país.
Homenaje a Eduardo Butrón Hodwalker de Magangué, Bolívar
Este artista popular de Magangué, Bolívar, resultó ganador del primer premio del VI Salón BAT de Arte Popular con la obra Una mirada desde lo rural, de acuerdo con el jurado, por la transformación del espacio urbano de Magangué, un municipio que ha sido afectado por los problemas ambientales, el conflicto armado y la delincuencia.
Eduardo Butrón para crear sus obras utiliza desechos, como la basura que recoge del río Magdalena, dándole vida a sus creaciones, con un alto contenido ecológico y pedagógico, contribuyendo a la reconstrucción social. Refleja la problemática de su región y busca hacer un llamado a las autoridades y a la comunidad sobre la responsabilidad que tenemos todos los actores sociales en la preservación del medio ambiente. A través del mosaico, las instalaciones, los ensamblajes y del collage, refleja la identidad de la tierra que lo vio nacer, según el artista -“El río Magdalena representa una simbología que tiene la ciénaga, que forma parte de nuestra historia, de nuestra cultura, de la biodiversidad y de aquellos viajes en el David Arango, que nos identifica como seres ribereños”-.
Irradiación de valores ecológicos de los artistas populares
En medio de la variada topografía del país florece un conjunto de personas que han sido capaces de plasmar un sentido artístico personal, con mensajes de identidad. La mayoría de los artistas empíricos transforman desechos en arte y exploran con materiales que les da el entorno para crear. Sus obras las hacen con unas piedras, un bloque de arcilla, una goma elástica o diferenciadas fibras y, también con remanentes de papel, tela, alambre, plástico o pedazos de baldosas con diferenciados colores.
Esa producción exalta lo que somos como producto de nuestra historia, de las imágenes y recuerdos de la vida cotidiana, de las creencias, costumbres y personajes notables; todas son propuestas que enaltecen el carácter de la identidad nacional, de un medio ambiente natural, porque enseñan con ejemplo como su arte es sustentable.
Los artistas de todos los rincones de Colombia que tienen clara la importancia de la preservación del medio ambiente y la posibilidad de transformar materiales reciclados en arte popular están cordialmente invitados a participar en la convocatoria del VII Salón BAT de Arte Popular para que se expresen con el tema Colombia y el Medio Ambiente.
El VII Salón BAT de Arte Popular busca precisamente que todos los artistas tengan clara la importancia de la preservación del medio ambiente, de los ecosistemas y la posibilidad de encontrar en este espacio una plataforma de crecimiento y visibilidad para sus obras.
La convocatoria es abierta y de carácter nacional, y estará abierta desde el 14 de abril al 14 de julio de 2021, a través de la página web www.fundacionbat.com.co. Las exposiciones regionales de selección se llevarán a cabo entre el 2021 y 2022, el Gran Salón y el evento de premiación se realizarán en el 2022 y la itinerancia nacional tendrá lugar en los principales museos y centros culturales del país desde el 2022 hasta el 2024. Las exposiciones estarán acompañadas por actividades académicas y pedagógicas, producciones audiovisuales y editoriales.
Todos los artistas colombianos (inclusive los participantes y ganadores de las seis versiones anteriores), y los extranjeros residentes en el país, cuya formación profesional no haya sido en artes plásticas y similares, podrán participar en esta convocatoria con una obra que refleje el tema propuesto, Colombia y el Medio Ambiente.
A través del INPEC vamos a invitar a la población privada de la libertad a que participe, con los Programas de Desarrollo con Enfoque Territorial PDET se va a convocar a la población de dichos pueblos que se caracterizan por niveles de pobreza, en particular, de pobreza extrema y de necesidades insatisfechas, grado de afectación derivado del conflicto y presencia de cultivos de uso ilícito y de otras economías ilegítimas. Con la Conferencia Episcopal de Colombia llegaremos a las parroquias en los territorios y a los municipios a través de los medios comunitarios; con FONTUR promovemos la convocatoria en los 18 pueblos patrimonio, estaremos en todos los puntos de Servientrega del país, con las secretarías e institutos de cultura estaremos en todos los municipios de Colombia, con la Alcaldía de Bogotá en las 20 localidades y la comunidad de grafiteros. La convocatoria también se distribuirá a través de los museos aliados con el fin de tener un cubrimiento nacional.
Como novedad, junto con la Secretaría de Cultura, Recreación y Deporte de Bogotá se premiará al Arte Urbano Responsable, el ganador tendrá el privilegio de plasmar su mural en unos muros asignados por el Distrito en Bogotá. La maqueta que se presente debe estar diseñada teniendo en cuenta los dos muros que se especifican en la convocatoria, independientemente del lugar de proveniencia de la propuesta. El grafiti o la pintura mural ganadora será ejecutado por el artista durante fechas que coincidan con la realización del Gran Salón en Bogotá.
Este premio se crea con el ánimo de exaltar la estrategia implementada por la Alcaldía Mayor de Bogotá, a través de la Secretaría de Cultura, Recreación y Deporte, la cual genera inclusión y respeto por la diferencia y por nuestros entornos, al tiempo que se promueve el desarrollo de la libre expresión y se contribuye a la modificación de imaginarios, que han señalado el arte urbano como vandálico, transformando dichas percepciones para demostrar que el arte urbano es una práctica que pretende cambiar realidades y transformar argumentos con colores, creatividad y talento. Esta es una de las estrategias más significativas para la recuperación del espacio público, ya que genera acciones que impulsan el ejercicio de una ciudadanía activa, corresponsable y partícipe en la creación de la ciudad que todos soñamos.
Con qué técnicas pueden participar los artistas?
¿Qué premios se entregarán?
1. Un gran premio de $ 17.000.000 y estatuilla.
2. Tres primeros premios de $ 7.000.000 cada uno, con su respectiva estatuilla.
3. Dos segundos premios de $4.000.000 cada uno, con su respectiva estatuilla.
4. Un premio otorgado por el público de $4.000.000, con su respectiva estatuilla.
5.Un único premio de $10.000.000 y estatuilla para la mejor propuesta de Arte Urbano Responsable (pintura mural o grafiti).
6. Tantas menciones honoríficas como considere oportuno el jurado de premiación, cada una de las cuales se acompañará de una estatuilla.
7. Las obras premiadas pasarán a ser parte de la colección de arte popular de la Fundación BAT Colombia.
¿Cómo estará integrado el jurado?
La premiación se realizará en Bogotá con un jurado integrado por cinco miembros designados por el comité organizador del VII Salón BAT de Arte Popular, entre especialistas y artistas del arte popular, de amplia trayectoria y reconocimiento.
Para el caso del premio para la propuesta de Arte Urbano Responsable, hará parte del jurado un profesional especializado de la Secretaría Distrital de Cultura, Recreación y Deporte de Bogotá.
En las exposiciones regionales de selección el público hará parte del jurado, la obra con mayor votación será acreedora al premio del público.
Para mayor información visite: www.fundacionbat.com.co
Contacto de prensa: Luisa Venegas /Cel: 3014144339 /Luisa.venegas@secnewgate.co