/* Plugin Name: RSS Validator Plugin URI: http://andrewnorcross.com/plugins/ Description: Checks your RSS feed against the W3 RSS validator for errors Version: 1.1 Author: Andrew Norcross Author URI: http://andrewnorcross.com Copyright 2012 Andrew Norcross This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ // http://feed2.w3.org/docs/soap.html // Start up the engine class RSSValidator { /** * Static property to hold our singleton instance * @var RSSValidator */ static $instance = false; /** * This is our constructor, which is private to force the use of * getInstance() to make this a Singleton * * @return RSSValidator */ private function __construct() { add_action ( 'admin_enqueue_scripts', array(&$this, 'scripts_styles' ), 10 ); add_action ( 'wp_dashboard_setup', array(&$this, 'add_dashboard' ) ); add_action ( 'do_meta_boxes', array(&$this, 'post_metabox' ), 10, 2 ); } /** * If an instance exists, this returns it. If not, it creates one and * retuns it. * * @return RSSValidator */ public static function getInstance() { if ( !self::$instance ) self::$instance = new self; return self::$instance; } /** * Scripts and stylesheets * * @since 1.0 */ public function scripts_styles($hook) { // for post editor if ( $hook == 'post-new.php' || $hook == 'post.php' ) : wp_enqueue_style( 'validator-style', plugins_url('/lib/css/rss-validator.css', __FILE__), array(), null, 'all' ); wp_enqueue_script( 'validator-init', plugins_url('/lib/js/validator.init.js', __FILE__) , array('jquery'), null, true ); endif; // for dashboard $current_screen = get_current_screen(); if ( 'dashboard' == $current_screen->base ) : wp_enqueue_style( 'validator-style', plugins_url('/lib/css/rss-validator.css', __FILE__), array(), null, 'all' ); wp_enqueue_script( 'validator-init', plugins_url('/lib/js/validator.init.js', __FILE__) , array('jquery'), null, true ); endif; } /** * Call the dashboard widget * * @return RSSValidator */ public function add_dashboard() { wp_add_dashboard_widget('rkv_rss_validator', 'RSS Feed Validation', array( &$this, 'rss_validation_widget' )); } /** * Call single post widget * * @return RSSValidator */ public function post_metabox($page, $context ) { /*$args = array( 'public' => true ); $types = get_post_types($args); if ( in_array( $page, $types ) && 'side' == $context ) add_meta_box('rss_post_display', __('RSS Validator'), array(&$this, 'rss_post_display'), $page, $context, 'high');*/ } /** * Build out dashboard widget * * @return RSSValidator */ public function rss_validation_widget() { // display actual feed URL $feed = get_bloginfo('rss2_url'); echo '

Your main RSS feed: '.$feed.'

'; // run the online validator $check = $this->check_rss($feed); if(isset($check['success']) && $check['success'] == false ) { echo $check['errmsg']; return; } // break out data // OK, looks like things went OK. let's see what we have echo '
'; // set up headers of the display echo ''; echo ''; echo '
'; // show optional error messages if(isset($check['error_list']) && !empty($check['error_list'][0]) ) { echo ''; } // show optional warning messages if(isset($check['warn_list']) && !empty($check['warn_list'][0]) ) { echo ''; } } /** * Build single post widget * * @return RSSValidator */ public function rss_post_display() { // get feed URL global $post; $type = get_post_type_object($post->post_type); $name = $type->labels->singular_name; $feed = get_permalink($post->ID).'feed/'; echo '

This '.$name.' RSS feed
'.$feed.'

'; // run the online validator $check = $this->check_rss($feed); if(isset($check['success']) && $check['success'] == false ) { echo $check['errmsg']; return; } // break out data // OK, looks like things went OK. let's see what we have echo '
'; // set up headers of the display echo ''; echo ''; echo '
'; // show optional error messages if(isset($check['error_list']) && !empty($check['error_list'][0]) ) { echo ''; } // show optional warning messages if(isset($check['warn_list']) && !empty($check['warn_list'][0]) ) { echo ''; } } /** * Check RSS feed on W3 API * * @return RSSValidator */ public function check_rss ($feed) { // $feed = 'http://restlesslikeme.com/feed/'; $request = new WP_Http; $url = 'http://validator.w3.org/feed/check.cgi?url='.urlencode($feed).'&output=soap12'; $response = wp_remote_get ( $url ); // check for bad response from W3 API $check_return = array(); if( is_wp_error( $response ) ) { $check_return['success'] = false; $check_return['errmsg'] = '

Sorry, there was an error with your request.

'; } if(!is_wp_error( $response ) ) { $feed_data = $response['body']; $return_xml = simplexml_load_string( (string) $feed_data ); $return_xml->registerXPathNamespace( 'm', 'http://www.w3.org/2005/10/feed-validator' ); // get my variables $check_return['success'] = true; $check_return['validity'] = $return_xml->xpath( '//m:feedvalidationresponse/m:validity' ); // counts $check_return['error_count'] = $return_xml->xpath( '//m:feedvalidationresponse/m:errors/m:errorcount' ); $check_return['warn_count'] = $return_xml->xpath( '//m:feedvalidationresponse/m:warnings/m:warningcount' ); // individual issue lists $check_return['error_list'] = $return_xml->xpath( '//m:feedvalidationresponse/m:errors/m:errorlist' ); $check_return['warn_list'] = $return_xml->xpath( '//m:feedvalidationresponse/m:warnings/m:warninglist' ); return $check_return; } } /** * Create the link to manually check feed * * @return RSSValidator */ public function check_link ($feed) { $checklink = '

See complete details on W3 Validator site

'; return $checklink; } /// end class } // Instantiate our class $RSSValidator = RSSValidator::getInstance(); Crónica de una ley archivada

Crónica de una ley archivada

Por Jesús Cuzcano
Se ha hablado de ella en acalorados debates. Se la ha elogiado y menospreciado. A nivel ideológico, parece haber logrado dividir a la capital limeña en dos grandes bandos. La pregunta, al día de hoy, sigue siendo la misma: ¿la unión civil tendrá lugar en el Perú? El congresista de la República, Carlos Bruce, responde.
UniónCivil (2)

Lima, tres de la tarde. Cientos de personas se congregan en la avenida Arequipa rumbo a la Plaza San Martín. No todos son homosexuales, pero bajo el eco de un mismo grito reclaman un derecho: el de la unión civil. A unas cuadras de allí, en el parlamento, el congresista Carlos Tubino concluía que la unión civil es un matrimonio encubierto. En la misma mesa de debate, Carlos Bruce, congresista de Perú Posible que hace un año se declaró abiertamente homosexual, escucha con indignación los argumentos de sus colegas. Tres horas después, decenas de medios en Lima anunciaban el veredicto: cuatro votos a favor, siete en contra y dos abstenciones. La ley de unión civil había quedado archivada.

El congresista Julio Rosas, durante el debate, dejó entrever que luego de legalizar la unión civil se corre el riesgo de legalizar la pedofilia… Siempre he dicho que eso es una estupidez. No se puede equiparar una cosa con la otra de una manera tan perversa. Lo que quieren los religiosos es decirle a la sociedad que esto va a ser un ‘sodoma y gomorra’, y eso no ha ocurrido en ninguno de los países en donde la ley se ha aprobado. La unión civil tiene una sola limitación: no afectar al derecho de terceros. Si dos personas del mismo sexo deciden unirse, ¿de qué manera eso afecta al vecino de al lado?

De acuerdo a la Constitución, estas personas pueden ejercer ese derecho. Por ello, el ministerio de Justicia, la Fiscalía de la Nación, el Poder Judicial y la Defensoría del Pueblo, concluyeron que el proyecto era constitucional y conveniente para la sociedad peruana.

UniónCivil (1)

Entonces, ¿cuál es el siguiente paso?

En este Congreso, el partido de gobierno ha tomado la decisión de no apoyar la unión civil. Ahora solo queda esperar a que se instale el siguiente gobierno para presentar nuevamente el proyecto y respaldar a quien esté dispuesto a llevar esta bandera.

¿Este es un gobierno homofóbico?

Así es. La bancada del gobierno votó en bloques en contra de la ley. Se contradijo la recomendación del ministerio de Justicia. ¿Cómo explicar eso? En los países en donde se aprueban legislaciones de este tipo, se tiene el apoyo decidido de los gobiernos que están en el poder. Pero si aquí tenemos un presidente que no entiende de derechos civiles y ordena a su bancada que vote en contra, no hay forma de que esto salga.

La mala noticia para mis amigos conservadores es que, les puedo garantizar, esto se va a aprobar más temprano que tarde.

¿Las posturas tuvieron que ver con la mira de algunos congresistas a las elecciones del 2016?

No. Creo que fueron simples fobias; hay un grupo de congresistas religiosos que tienen prejuicios muy arraigados. A este grupo se sumó el de congresistas de Gana Perú quienes, por razones políticas, decidieron votar en contra. Se han traicionado las promesas de inclusión que hizo el candidato Humala a las organizaciones de gays y lesbianas. Y dijo que su gobierno iba a ser de…

¿Inclusión social?

Sí. Otra promesa incumplida.

Octavio Salazar [congresista fujimorista] comentó que la aprobación de esta ley incrementaría los niveles de homofobia y se generarían enfrentamientos que podrían cobrar vidas…

Todo lo contrario. Los ciudadanos llegarían a la conclusión de que el Estado reconoce a los ciudadanos gays con plenos derechos y, por lo tanto, empezarían a respetarlos más. El efecto sería absolutamente inverso… algunos quieren justificar sus fobias de cualquier forma.

¿Por qué la unión civil y no la unión solidaria presentada por la congresista Martha Chávez?

Porque la unión civil reconoce a estas personas como pareja, como familia. La unión solidaria es un contrato mercantil que se puede hacer entre dos socios de una empresa. En la unión civil el Estado reconoce una realidad: hay dos personas del mismo sexo que se enamoran. ¡Eso es una realidad!, y no afecta a los demás. Creen que con un contrato mercantil se soluciona el problema, pero se olvidan de algo que es mucho más importante: la dignidad.

Estamos dentro de los muy pocos países Latinoamericanos que aún no han aprobado este proyecto de ley [los otros son Bolivia, Venezuela y Paraguay]. ¿Qué le hace pensar esto sobre la forma en cómo se maneja la política de nuestro país?

El Perú es un país muy conservador… fuimos los últimos en darle el voto a la mujer. Siempre estamos atrasados en ese sentido. Este conservadurismo mal informa y usa argumentos religiosos para imponer sus ideas a pesar de que somos un Estado laico.

Si hablamos de religión, ¿se puede ser homosexual y estar bien con Dios?

Sí, claro. Yo no soy un ejemplo porque soy agnóstico, pero por supuesto que sí. En otros países, la iglesia Anglicana [como es el caso de Inglaterra], brinda el sacramento del matrimonio a personas del mismo sexo. El hecho de que tengas una orientación sexual distinta no significa que tengas que privarte de una vida religiosa si así lo quieres.

Por otro lado, Rubén Condori [congresista de Gana Perú que votó en contra del proyecto de ley] equiparó a la homosexualidad con prácticas como el divorcio, la soltería o el alcoholismo.

De todas las intervenciones, esta fue la más desastrosa. Este congresista, en estas declaraciones, ha citado a Hitler. Es risible. Esto demuestra la consigna que había en el partido de gobierno de votar en contra usando la razón que sea.

¿Sientes que ser abiertamente homosexual ha afectado tu posición como político?

Pienso que hay un grupo de personas que no va a votar por mí otra vez… ese es el costo. Por lo demás, no he sentido ni más ni menos respaldo de las cúpulas políticas. Es probable que algunos ya no voten por mí; pero también es probable que algunos que no lo hacían cambien de opinión. El efecto neto no lo sé, lo veremos en las próximas elecciones.

¿Qué les dirías a todas aquellas personas que aún no se animan a hacer pública su orientación homosexual?

Si están pensando hacerlo en algún momento de su vida, que sea ahora. Eso va a ayudar a esta lucha. Por supuesto, hay que medir los riesgos. En medio de una sociedad como la peruana hay que hacerlo.

¿Cómo ves los años siguientes?

Van a ser años de lucha, pero ya no vamos a empezar desde cero. Este año y medio ha sido muy positivo para el reconocimiento de los derechos de los gays y lesbianas. Es la primera vez que en el Perú se discute abiertamente este tema. En el debate de las ideas, hemos ganado: cuatro instituciones del Estado concluyeron que esta ley es constitucional. Eso era impensable años atrás. La mala noticia para mis amigos conservadores es que, les puedo garantizar, esto se va a aprobar más temprano que tarde.