domingo, 6 de junio de 2010

El Grand Slam Rojo

En este año 2010 algunos hemos sido testigos de la gran hazaña de Rafa Nadal en tierra batida. Y es que Rafa ha logrado conseguir el 'no tan conocido' Grand Slam Rojo, que significa haber ganado los tres ATP Masters 1000 sobre tierra batida en Montecarlo, Roma y Madrid, y además, el Gran Slam de Roland Garros de París, todo en el mismo año.

Hoy ha sido la final de Roland Garros, y hay que decir que la más emocionante de todas las que ganó Rafa, porque la disputaba nada más y nada menos que frente a Robin Soderling, aquel hombre que odiabamos por sus desplantes y que maldecimos por vencer a Rafa en 2009 en la misma pista en la que hoy lo pulverizó.

Poco se ha oido hablar del Grand Slam Rojo. Por lo pronto, ni la wikipedia lo recoge. ¿Será porque nadie lo había logrado nunca? - Es cierto que el Masters de Madrid pasó de pista dura a arcilla hace un par de años, pero eso no resta el increible merito que tiene ganarlos. Y es que Rafa es el Rey de la tierra, y esperemos que sea así por mucho más tiempo.

Esta pasión que me entra ultimamente por el tenis no es fortuita, ni siquiera tiene que ver con los títulos que está ganando el mayorquín. Creo más bien que tiene que ver con la forma en que gana títulos, en la que gana partidos, en la que gana puntos, la forma en la que hace todo lo que hace.

Aunque suene ridículo y demasiado fantasioso, he llegado a entender la famosa coletilla de "es un estilo de vida" que se aplica a muchas cosas en el mundo. Habría que indagar en el verdadero significado de esa frase.

Para mí, ver la entrega que dedica a cada paso que hace, todos los detalles desde que sale a la pista hasta que marcha, incluso lo que puedes imaginar que haga fuera de ella, todo eso me hace pensar en la increible fortaleza mental que tiene, y a su vez, me hace pensar en por qué no podría yo aplicarla a mi vida. Aprender de esa fortaleza, y aplicarla a mi vida diaria. Ese debería de ser un estilo de vida. El trabajo constante, la humildad en lo que haces, sabiendo que siempre habrá alguien mejor que tu, las ganas de ser siempre mejor de lo que eres ahora, respetar a tu rival, apreciar cada pequeño triunfo que obtengas, pelear por un punto cuando pierdes 0-40 en bola de partido, pelearlo porque puedes ganarlo y con mentalidad ganar el partido, creer que puedes ganar, confiar en tí y en tus posibilidades, pero siempre yendo poco a poco, sin prisas, sin ansiedad, sabiendo llorar cuando ganas y sabiendo sonreir cuando pierdes. Tantos y tantos detalles en su forma de actuar que le hacen conseguir grandes cosas, y más.

Hoy cuando ha levantado la Copa de los Mosqueteros, me dije: 'lo había visto. la noche antes había visto esta misma imagen, y había visto rotulos en los periodicos anunciando que el era el Campeon de Roland Garros 2010'. Y ahora me digo, '¿por qué no le imitas?'

El viernes tengo un examen final y me digo a mi misma que si Rafa es capaz de ganar su quinto Roland Garros con toda la presión que se le ha echado encima estos últimos meses, ¿por qué no voy a ser yo capaz de aprobar ese examen final? - Es cierto, Rafa es un excepcional tenista, que pocos habrá nunca, y yo soy infinitamente más pequeña que el; pero ganar en París también es infinitamente más dificil que aprobar el exámen final del viernes, por lo que todo se compensa.

¿Cuál sería la solución? - pues aplicar sus detalles, aplicar su forma de trabajar, aplicar su mentalidad, su madurez, su estabilidad, aplicar ese estilo de vida que el lleva y con ello conseguir mis objetivos. Si el puede, yo también. En eso consiste mi pasión por Rafa, es la pasión por su saber hacer ya que al fin y al cabo, las copas van a parar a la vitrina de su casa, y a mi vitrina deberían de ir a parar 'mis propios triunfos'.

Enhorabuena Rafa. Y ahora, a por Wimbledon.

sábado, 10 de abril de 2010

Drupal + modulo node_limitnumber: redirigir cuando se llega al límite

Cuando queremos limitar el número de publicaciones de un usuario (crear contenido) podemos utilizar el módulo NODE_LIMITNUMBER con el que se puede escoger el límite de creaciones de contenido para un role concreto y para un tipo de contenido concreto.

En este caso, queremos que los usuarios registrados puedan enviar un boletín de inscripción.
Para ello necesitamos que SOLO puedan editarlo UNA sóla vez.
Por lo tanto configuramos el nuevo módulo para que aquellos usuarios con el ROLE miembros sólamente puedan crear 1 contenido de tipo BOLETIN.

Para comprobar su funcionamiento, basta con crear un contenido y luego volver a acceder al path NODE/ADD/BOLETIN y nos saldrá el mensaje siguiente:



Pero para hacer el site mucho mas dinámico, sería interesante que cuando un usuario intente crear un nuevo contenido de ese tipo y le salga el mensaje de "prohibido crear", se le mostrara a continuación el boletín ya creado. De esta forma no dejaría lugar a dudas que SOLO puede crear/enviar ese boletín.

Para esto primero necesitamos el PATH del boletín que ha creado el usuario.
Podríamos copiar el path del nodo e indicarselo, pero necesitamos que la aplicación sea dinámica, por lo tanto pediremos ayuda a VIEWS y crearemos una vista de "los boletines creados por el propio usuario" y tomaremos nota del path de la vista (o view).

Luego, necesitamos acceder al código fuente de DRUPAL.

No nos asustemos! No es un método agresivo.

En el FTP: drupal->sites->all->modules->node_limitnumber
Editamos el archivo node_limitnumber.module
En la línea 156 y 157:


drupal_set_message(t("You can't create more content of type !type, sorry.", array('!type' => $nodetypename)), 'error');

drupal_goto('path_view');


Sustituimos "node/add" por "path_view".

Y listo!

Drupal: código php para Default value en los CCK field

Cuando mostramos un formulario que debe rellenar un usuario, podemos mostrar algunos campos ya rellenados con la información que disponemos.

En este caso, quiero que el campo EMAIL sea rellenado con la dirección email que está asignada a cada cuenta de usuario, de este modo, el formulario seguirá siendo identificado de forma no sólo única sino rápida.

Para hacerlo es tan sencillo como ir a la configuración del FIELD_EMAIL que hemos creado con CCK; buscamos la pestaña DEFAULT VALUE y desplegamos PHP CODE.

Copiamos el siguiente código:


global $user;

return array(

0 => array('value' => user_load($user->uid)->mail ),

);


Y el campo email del formulario se rellenará al inicio con la dirección del usuario.

viernes, 12 de marzo de 2010

jSeblod CCK y JA purity: problemas en Firefox

Cuando intentamos visualizar en nuestro front-end los articulos creados con jSeblod, comprobamos que hay un problema de visualización en Mozilla Firefox.

Concretamente ocurre con la plantilla JA Purity que viene por defecto con Joomla.

PROBLEMA
El texto de cada articulo "se sale" de la plantilla y aparece sobreimpreso hacia la derecha.




CAUSA
La estructura que adopta la plantilla es:


<h2 class="contentheading">
¿Dónde está el ítem del contenido estático?
</h2>

<div class="article-tools">
<div class="article-meta">
// Fecha de edicion y autor
</div>
<div class="buttonheading">
//Iconos de PDF, impresora, email
</div>
</div>


<div class="article-content">
// Texto de nuestro nuevo articulo creado con jSeblod
</div>


Si nos fijamos, nuestro nuevo contenido estará incrustado en una caja DIV a continuación de la caja DIV que alberga los botones de pdf, imprimir y email. El codigo CSS de estos ultimos indica lo siguiente:


.article-tools {
float: right;
}
.article-meta {
float: right;
}


Por lo tanto nuestra caja DIV donde albergamos el texto de nuestro nuevo articulo adopta la posicion flotante RIGHT, por lo que sale a la derecha y superponiendose con el resto de los modulos.

No tengo claro si la culpa es de una mala programación de la plantilla, o bien que Mozilla Firefox interpreta mal estos datos ya que en el resto de navegadores se ve correctamente.



SOLUCION

Pues la solución está bien clara: necesitamos indicarle a nuestro DIV que su posición es LEFT.

Para ello nos vamos a la plantilla de jSeblod.
NOTA: esto es muy importante. Si modificamos la plantilla de Joomla los cambios no se reflejaran, ya que la zona de codigo que añade jSeblod, esta gestionada por las plantillas de jSeblod.

Desde nuestro Back-end:

jSeBlood CCK -> Gestor de plantillas -> Buscamos la plantilla [Default Content] y la abrimos.

Esta plantilla es la que tiene por defecto los articulos de jSeblod. Si la hubieramos cambiado, tendríamos que buscar la plantilla correspondiente.

En la sección inferior SOURCES
Code(CSS) -> Site.css
Presionamos sobre el icono de edición y se nos abrira una ventana para editar el archivo.

Añadimos el siguiente código:

.article-content{
float:left;
}

Guardamos todo y debería aparecer el texto correctamente ubicado.


miércoles, 3 de marzo de 2010

Joomla + jSeblod CCK = subcategorías y mucho más

Y volvemos con otro plugin extra de Joomla.

Esta vez le toco el turno a jSeblod CCK ante la necesidad de incluir subcategorías a la estructura de Joomla, el cual solo dispone de secciones y categorías por defecto.

En muchas ocasiones nos gustaría poder clasificar un artículo en un arbol más complejo que el que viene por defecto y creo que este nuevo componente puede servir.

Se consigue a través de la web de extensiones de joomla y se instala el zip como cualquier otro plugin.

Ya a primera vista se puede comprobar que parece muy completo y con una interfaz muy agradable. Y sólo nos resta empezar a movernos por joomla para comprobar tambien su increible integración con el cms, realmente estupenda.

Las instrucciones de instalación del plugin son una buena recomendación a seguir, de las cuales es interesante destacar un par de notas importantes:
Eliminar la cache del navegador (en caso de ser una actualización, aunque yo lo realice de todas formas).

1.- Cambiar el salto de línea por defecto de Joomla. El editor TinyMCE de Joomla tiene por defecto marcar los parrafos con P, pero para un correcto funcionamiento e integración con el nuevo plugin es necesario que este salto de línea sea BR. Para ello:
  • Extensiones -> Gestor de plugins
  • Buscamos el plugin "Editor - TinyMCE 2.0" y lo editamos.
  • Buscamos en la zona derecha (abajo) "Líneas nuevas" y marcamos "Elementos BR"
2.- No tener activada la función automática de FTP en Joomla.

3.- Comprobar que el nuevo plugin es el primero de la lista de contenido:
  • Extensiones > Gestor de plugins
  • Buscar el plugin "Content - Cckjseblod" .
4.- Configurar un acceso directo en la barra de la administración
  • Extensiones -> Gestor de módulos -> Enlace Administración
  • Buscamos el módulo "Extended Admin Menu - jSeblod" y lo habilitamos


También puede resultar muy útil los video-tutoriales que tienen a nuestra disposición. Aunque son un poco acelerados, se puede ver lo amplio, complejo, completo y atractivo que es este gran plugin.

Ahora voy a experimentar un poco más con él :D

domingo, 28 de febrero de 2010

Joomla - Cambiar nombre carpeta administrator

Estos días los estoy dedicando a aumentar la seguridad de algunos sitios web que tengo operativos por la red. Entre muchas cosas se habla de lo muy recomendable que es ocultar la url del panel de administración, sobretodo de un CMS tan conocido como Joomla y el cual, recien me doy cuenta ahora, es tan dificil realizar.

Joomla dispone de su directorio administrator donde se encuentra su back-end:


Su dirección url es http://www.midominio.com/administrator suponiendo que hemos subido nuestros archivos Joomla directamente en la raiz de nuestra carpeta pública de nuestro dominio.

Sabiendo esto, es muy fácil para "algun curioso" intentar entrar a nuestro sistema de administración con una dirección tan conocidad.

Es por esto que es muy recomendable cambiar el nombre del directorio donde se almacenan los archivos de administración. Aunque esto no hace a nuestro sitio web invulnerable, si es una gran ayuda y limitaría el número de "curiosos" que pueden intentar acceder.

Como Joomla basa su estructura en modulos relacionados entre sí, éstos también hacen constantes referencias a la ruta administrator, por lo que hay que encontrar todos esos archivos y modificar la ruta manualmente.

A modo de recopilatorio para mi propi uso voy a ir apuntando en esta entrada una lista de los archivos modificados.

-------------------------------

Lo primero, vamos a trabajar con la versión de Joomla 1.5.15, concretamente el Spanish pack completo.

.SQL
installation\sql\mysql\sampledata.sql

.TXT
/robots.txt

.XML
administrator\templates\khepri\templateDetails.xml
components\com_poll\views\poll\tmpl\default.xml
components\com_newfeeds\views\category\tmpl\default.xml
components\com_newfeeds\views\newsfeed\tmpl\default.xml
modules\mod_banners\mod_banners.xml
administrator\components\com_translationsmanager\config.xml
components\com_contact\views\contact\tmpl\default.xml
components\com_contact\views\category\tmpl\default.xml
administrator\components\com_content\models\article.xml
components\com_content\views\article\tmpl\default.xml
modules\mod_poll\mod_poll.xml

.PHP
administrator\components\com_admin\tmpl\sysinfo_directory.php
administrator\components\com_templates\admin.templates.html.php line: 122
administrator\components\com_translationsmanager\controller.php
administrator\components\com_media\views\images\view.html.php
administrator\components\com_media\views\imageslist\view.html.php
administrator\includes\defines.php
libraries\joomla\enviroment\uri.php
installation\installer\models\model.php
includes\defines.php
installation\includes\defines.php
xmlrpc\includes\defines.php
installation\installer\helper.php line: 412
libraries\joomal\html\html\image.php line: 131
plugins\search\content.php line 50
installation\includes\application.php line 244






El cambio hay que fijarse concretamente cuando las sentencias de código hablen de rutas, path, la palabra sea en minusculas, sea una cadena de texto, e intuitivamente parezca ser relativo a la ruta.

Vamos a subir los archivos y comprobar si todo ha ido bien.

NOTA: no cambiar en administrator\includes\application.php en getRouter(). En este archivo hace referencia a un nombre de aplicación que nada tiene que ver con el nombre de la ruta que intentamos cambiar.

NOTA2: Tampoco cambiarlo en administrator\index.php en mainframe, ya que volvemos a tratar de la aplicación.

NOTA3: en algunos sitios aparece la palabra de la forma "image.administrator". En esta ocasion no se sustituye ya que representa una funcion con el nombre administrator en el archivo image.php

NOTA FINAL: Despues de muchos intentos y de dejarme los ojos en el código, la transformación parece ser más complicada. Actualmente, el backend se muestra pero el menu no se activa. Puede ser un problema con la template, ya que en texto plano los links funcionan correctamente. Puede que tambien los archivos donde pase por alto la modificación por parecer del tipo de usuario, deberían de haber sido cambiados.
Es un poco lioso, y no quiero que me queden bugs perdidos, sobretodo cuando lo quiero implantar para una muestra pública, de modo que desisto, hasta ver si algún día doy con la solución definitiva.

Realmente una pena ...

jueves, 25 de febrero de 2010

Un poco de todo

He ido a ver esta noche Shutter Island, de Scorssese con Di Caprio.
La verdad que un buen amigo me dijo que no tenía muy claro si le había gustado o no, y yo he salido del cine con la misma sensación. Su final es impactante, aunque no por ello esperado. Pero es los tipicos finales ambiguos, que lo mismo te da que acabe así que todo lo contrario. Giro sobre giro en la trama es como lo llaman.
Yo me quedaré con que durante todo el grueso de la pelicula (excluyendo principio=expectativas y el final=curiosidad) pues tenía unas ganas locas de que acabara el dichoso film y salir de esa maldita isla. Me rayo bastante, la verdad.

Por otra parte, cada vez estoy mas nerviosa por que llegue "el gran día". El día 9. Nueve de Marzo de Dos Mill Diez. Qué gran fecha!
Está claro que sólo los fanáticos de Final Fantasy como yo comprenden exactamente la ansiedad que producen estos 10 días.
En el fondo nos da igual si el juego cumple las expectativas o no. Lo importante es tenerlo, jugarlo, probarlo, juzgarlo y pasarlo. Luego llegan las criticas, que si esto me gusta mas, que si esto no me gusta, que porque hicieron esto otro, ... pero al cabo de dos días, volveremos a empezarlo de nuevo y acabarlo, jeje.

Yo que soy una obsesionada con "el no saber nada de nada" por lo pronto no he visto ni un trailer. No quiero! Ya es suficiente que me se los rostros de algunos personajes, que la acción comienza en un mundo llamando Cocoon (El Nido en el idioma de Cervantes) y que es lineal.
Es de lo único que se habla del juego.
Sinceramente, lo prefiero. Lo interesante de cada Final Fantasy es su nueva historia, que te guste, que te enganche, que te deje con ganas de ver que ocurre en el siguiente video, en la siguiente ciudad, tras la siguiente mision.
Por dios! Tiempo a salir al campo a luchar con enemigos y subir nivel siempre tenemos.

Solo pido por favor que no me frustre como lo hizo la anterior entrega, donde mi imaginación corría más que la trama del juego. En el fondo, viví una historia paralela: la que yo me esperaba y nunca apareció.


Y cambiando de tema friki, decir que se acabó la implementación de la pasarela de pago.
Al final han decidido no implantar un TPV virtual para el pago por tarjeta, y con ello se acaba mi mini proyecto para agregarlo a la web. Asique del paso 0.0 no "pasamos" a ninguno mas xD.

De todas formas, ahora empiezo con un apartado nuevo y estoy segura que algo bueno sacaremos para publicar aquí.