July 30 2008

Hackeando el plugin MyFTP

MyFTP es un plugin muy útil que te permite tener un mini cliente FTP dentro de tu Dashboard de Wordpress, hace poco se me planteo una simple necesidad, que el usuario pudiera subir archivos de cualquier tipo y luego compartirlos como él quisiera. Por experiencia, todos sabemos que cuando le pones demasiados botoncitos y carpetitas al usuario irremediablemente terminará clickando por "accidente" el botón de borrar, pues como bien indica el autor de este plugin, realmente es tan poderoso que puedes borrar lo que quieras. Imagínense eso en las manos del típico usuario tentón que cree que la página que se le entrega es una mujer facilota dispuesta a ser manoseada por todos lados. Pues simplemente no podemos confiar en él, recuerden la filosofía Housiana... "el usuario miente" y nunca te dirá que él se jodió la carpeta themes y que por eso ya no se ve el tema del blog, o se cargo toda la carpeta upload y por eso ya no existen más los archivos.

Como él miente y nosotros queremos quitárnoslo de encima, vamos a hacerle un pequeño ajuste a este plugin para encasillar al usuario en un solo directorio y que no pueda salir de ahí, así si se carga sus archivos, será culpa única y exclusivamente de él, y nosotros habremos salvado a un usuario pobre de morir ahorcado con un cable usb.

Primero lo primero, instalar el plugin

Descarguemos el plugin desde aquí, procedamos a descomprimirlo, subirlo a nuestro servidor en el directorio de plugins de Wordpress y activarlo. Después de activarlo, vamos a Settings, ahí encontraremos una opción llamada MyFTP, el plugin luce así

MyFTP Plugin de Wordpress

Modificando el plugin

Tentadores esos botones de Delete File y Delete Folder, ¿no es cierto? Además, notemos que estamos en el home de nuestro servidor, por lo que podemos borrar lo que queramos, así que vamos de una vez a bloquear el acceso. Vamos a modificar los archivos de forma local y luego subiremos nuestro resultado al servidor. Abra el archivo myftp.php y localice la función myFtp2, que luce así

PHP:
  1. function myFtp2(){
  2. if($_GET["dir"] == "" || !is_dir($_GET["dir"])){
  3. $dir = getcwd();
  4. $dir = str_replace("\\", "/", $dir);
  5. $dir = explode("/",$dir);
  6. array_pop($dir);
  7. $dir = implode("/",$dir);
  8. }else{
  9.  $dir = $_GET["dir"];
  10. }

La reemplazaremos por

PHP:
  1. function myFtp2(){
  2. if($_GET["dir"] == "" || !is_dir($_GET["dir"])){
  3. $dir = "/esta/es/la/ruta/física/del/directorio/del/usuario";
  4. }else{
  5.  $dir = $_GET["dir"];
  6. }

Luego, cerca de la línea 155, encontraremos este pequeño fragmento de código

PHP:
  1. <form  method="post" enctype="multipart/form-data" action="<?php echo  $_SERVER["PHP_SELF"] . "?page=MyFtp&dir=".str_replace('\\', '/', get_home_path()); ?>">

Que reemplazaremos por:

PHP:
  1. <form  method="post" enctype="multipart/form-data" action="<?php echo  $_SERVER["PHP_SELF"] . "?page=MyFtp&dir=".str_replace('\\', '/', '/este/es/el/directorio/físico/del/usuario'); ?>">

Luego, por la línea 171, encontraremos un echo muy grande, este para ser exactos

PHP:
  1. echo"<div id='displayTables'><table border=1 cellspacing=0 cellpadding=2 width='65%' align='center'>
  2.   <tr><th align=center bgcolor=#83b4d8 colspan='3'><font size='5' color=white> Your Currently Browsing:</font><br /><br />".$dir."<br />&nbsp;</th></tr><tr><th align=center colspan='3'><ul id='submenu'><li><a href='" . $_SERVER["PHP_SELF"] . "?page=MyFtp&dir=".str_replace('\\', '/', get_home_path())."'>Home</a></li>&nbsp;&nbsp;&nbsp;<li><a href='" . $_SERVER["PHP_SELF"] . "?page=MyFtp&dir=$parentDir'>Up One Level</a></li>&nbsp;&nbsp;&nbsp;<li><a href=' javascript:history.back()'>Back One Level</a></li></ul></th></tr>";

Que vamos a reemplazar por

PHP:
  1. echo"<div id='displayTables'><table border=1 cellspacing=0 cellpadding=2 width='65%' align='center'>
  2.   <tr><th align=center bgcolor=#83b4d8 colspan='3'><font size='5' color=white> Your Currently Browsing:</font><br /><br />".$dir."<br />&nbsp;</th></tr>";

Ahora, el plugin ofrece una caja de texto editable con la ruta actual, eso tampoco nos conviene, localicemos la siguiente línea

PHP:
  1. Current Path: <input type="text" name="desiredLocation" size="<?php echo strlen($dir) + 10; ?>" value="<?php echo $dir; ?>"><br /><br />

Y la vamos a reempleazar por

PHP:
  1. Current Path: <?php echo $dir; ?> <input type="hidden" name="desiredLocation" size="<?php echo strlen($dir) + 10; ?>" value="<?php echo $dir; ?>"><br /><br />

En resumen, lo que hemos hecho fue quitar los botones de Home, Up One Level y Back One Level, así como quitar la caja de texto subtituyendola por un objeto hidden para no perder la ruta que hemos establecido. Guardemos los cambios. Ahora, hay que abrir el archivo myftpFunctions.php y encontrar la función homeDir

PHP:
  1. function homeDir(){
  2. $hdir = getcwd();
  3. $hdir = str_replace("\\", "/", $hdir);
  4. $hdir = explode("/",$hdir);
  5. array_pop($hdir);
  6. $hdir = implode("/",$hdir);
  7. return $hdir;
  8. }

Le haremos un pequeño cambio

PHP:
  1. function homeDir(){
  2. $hdir = "/esta/es/la/ruta/física/del/directorio/del/usuario";
  3. return $hdir;
  4. }

¡Y listo! Hay que guardar este otro archivo, subir de nuevo el plugin a la carpeta de plugins de wordpress en nuestro servidor y actualizar.

Plugin MyFTP para wordpress

Nota importante: El plugin esta bajo licencia GNU y es propiedad de su autor, yo solo le hice algunos ajustes para adaptarlo a una necesidad, en ningún momento me estoy adjudicándo la creación de dicho plugin

July 09 2008

Nuestro Nuevo Logo, y lo apestoso de IE6

Desde hace tiempo había algo que me estaba molestándo respecto a la apariencia del blog, pero como que no me caía "el veinte" (Es decir, no había dado en el punto) Descubrí que este blog ha tenido de todo, encuestas, chatbox, wallpapers, publicidad a lo descarado, widgets para muchas cosas absurdas... pero no tenía logo. De manera que aunque el blog se llama Licencia Creativa, no había algo que lo identificará como tal. Por eso, después de una extensa búsqueda arqueológica, encontré el logo que diseñe hace mucho tiempo para este blog y que a continuación muestro.

Primer Logo

Luego recordé que el nombre del blog no en sí mi nick, así que le hice un breve y sencillo cambio. Hace mucho que no diseñaba un logo, y no quise hacer algo ostentoso, ni muy a lo 2.0, simplemente me divertí un rato con el flash, y el resultado fue este.

Logo de Licencia Creativa

Si, naranja de nuevo... xD Yo no le creí a L$, ¡pero el naranja mola! y eso me hace pensar que mi blog estaba destinado a ser naranja algún día xD

Ya en serio, el tema que tengo me ha gustado tanto que no lo pienso mover en mucho tiempo, lo único mala, es que en IE6 se ve muy mal, así que toca meterle mano, y de paso colocarle el SWFObject. Si tu vienes de IE6, deja de jugar a navegar por Internet (y de paso, salva a un bloguerro de hacer algo útil por su blog xD ), usa un navegador para hombres de verdad, o uno para gente c00L o mínimo, forma parte de la elite.

July 02 2008

Yet Another New Theme

¡Si! un nuevo tema. El anterior estaba muy bueno, pero me daba muchos problemas con varios plugins y no funcionaba mucho del javascript que tiene. Así que me ví obligado a quitarlo. El Gato me sugirió varios, pero no me gustaron, y al final me decanté por este. Es muy "naranjoso" y tal, pero aún así me gusto mucho, así que pienso dejarlo un buen rato. También es más ligero que el anterior, aunque internamente es un desastre en cuanto a donde esta todo. El tema se llama TrendyOrange y lo saque de skinpress.

También quité de momento el Curso de Ruby, ya que no he tenido tiempo para terminarlo, pero iré pensando en hacer uno de un tema que si dominé para no dejar medio picados a los que lo estaban siguiendo. Y las galerías funcionan de nuevo, con la primera galería de Katherine Higl.

PD. El Gato andaba "emo" y me reclamo su enlace... listo ahí ta' gato mugroso ^_^

June 24 2008

Wordpress 2.6 Beta

Pues nada, aún no nos reponemos de la 2.5.1 y ya tenemos 2.6 en estado beta. Las mejoras de está versión hasta ahora dichas son:

  1. Seguimiento de post. Esto significa que podrás tener un historial de cambios en cada post que hagas, así, si perdiste algo o borraste por error, hay posibilidad de recuperarlo.
  2. Cacheo de los archivos estáticos con Google Gears lo que mejoraría la carga de nuestro panel de administración.
  3. Mejoras necesitadas a gritos en el dialogo de Insertar Imágenes (el cual nunca uso)
  4. Previsualización de temas al estilo de wordpress.com
  5. Contador de palabras en el editor de post (este me hubiera sido muy útil unas semanas atrás)
  6. La posibilidad de desactivar el posteo remoto
  7. XML-RPC API en las opciones generales del blog
  8. Soporte SSL mejorado
  9. Paginación por jerarquía en las opciones de Manage Pages y Manage Categories
  10. Se abre la posibilidad de cambiar de lugar físicamente el directorio wp-content
  11. La facultad de mover de lugar el wp-config.php (Ya se habían tardado con esto)
  12. Galerías con Drag & Drop (Esto me evitaría depender de NextGEN)
  13. Mejora en el manejo de avatares y la posibilidad de "costumizarlos"
  14. Ahora ya se pueden eliminar plugins desde la opción del administrador
  15. TyniMCE 3.1.0.1 con muchos bugfixes
  16. JQuery 1.5
  17. Un montón de bugfixes

La verdad, suena prometedor, pero aún no me atrevo a probarlo en mi blog. Tendré que instalarlo de forma local y probar. Mi gran duda es la de siempre ¿Qué va a pasar con los plugins? ¿Volveremos a tener el mismo desastre que supuso la 2.5 con ellos? Espero que los chicos de Wordpress no nos vuelvan a hacer algo como eso.

April 25 2008

Wordpress 2.5.1

Apenas y nos estabamos haciendo a la idea del trancazo que nos dio Worpdress con la versión 2.5, y ya tenemos versión 2.5.1, a saber del equipo de trabajo de Wordpress, está actualización contempla:

  1. Mejoras en el desempeño del panel de control, sobre todo en las partes de escribir post y editar comentarios
  2. Corrije problemas con las opciones para subir archivos de vídeo e imágenes
  3. Una actualización a tinyMCE 3.0.7
  4. Corrije errores en el sistema de adminitración de widgets
  5. Varias improvisaciones para mejorar la usabilidad

Al parecer también quieren darle un uso más formal a la llamada secret Key (me estaba preguntándo para que rayos sirve esa cosa). Más información en su web oficial.

March 29 2008

¡Wordpress 2.5 Liberado!

¡Al fin salio! mucho se había especulado sobre la versión 2.5 de Wordpress, y apenas hace unas 3 horas que salio la versión definitiva, en palabras mismas del equipo de desarrollo:

Wordpress 2.5 es la culminación de seis meses de trabajo de la comunidad de Wordpress, gente como ustedes. Las mejoras en 2.5 son numerosas, y la mayoría son resultado de la retroalimentación de la comunidad: subida múltiple de archivos, actualización de los plugins con un solo click, galerias prefebricadas, un panel de control personalizable, encriptación de cookies, librería de medios, un editor WYSIWYG que no desordena el código, protección concurrente de edición de contenido, escritura a full screen y una búsqueda que cubre los post y las páginas.

Se antoja para probarlo el fin de semana, ya les estaré pasando mis apreciaciones si es necesario.

February 25 2008

WP Stats: Estadísticas de tu blog

Desde hace algunos días he venido probando un plugin que me ha resultado bastante útil, se trata de WP Stats, un plugin que genera estadísticas sobre el contenido de nuestro blog de una manera muy ligera, rápida y de fácil lectura. Para instalarlo, solo tienen que ir a la web de su autor, en la sección de Others, luego Downloads y descargar WP-Stats 2.20.

Instalación

  1. Se descomprime el archivo ZIP que acabamos de descargar
  2. Se creará la carpeta wp-stats220, de ahí dentro, tomaremos la carpeta stats y la copiaremos a la carpeta plugins de nuestro wordpress
  3. Vamos a nuestro Panel (Dashboard) -> Plugins. Encontraremos dos nuevos plugins, WP-Stats y WP-Stats Widget, este último para los temas que soporten widgets. Activamos el primero y listo

Después de esto, tendremos una opción nueva en nuestro Dashboard

WP Stats

Y al entrar a está sección, encontraremos toda una diversidad de datos estadísticos como, los post más vistos, más comentados, los más recientes, los comentarios más nuevos y un resumen de la cantidad de comentarios por autor.

WP Stats

El plugin por supuesto tiene algunos otros usos, como poner en cada post la cantidad de visitas que este ha recibido o de crear una página de acceso público con las estadísticas generadas.

November 07 2007

NextGEN Gallery, una galería integral para Wordpress

Pocos plugins me causan tanta emoción como este que acabo de encontrar (Ok, el plugin tiene mucho tiempo de existir, pero apenas yo lo he descubierto). NextGEN es una galería de fotos muy completa, capaz de manejar sets de galerías y albumnes, todo esto con la comodidad de ajustarse a tu Wordpress de manera nativa, usando AJAX, LightBox y Flash, produce resultados realmente muy satisfactorios, teniendo además un panel de administración tan completo que te dejará una grata sensación de amor hacía el autor del plugin (por supuesto figurativo, so pervertidos).

Instalación

  • Descarga el plugin
  • Descomprime todo en la carpeta wp-content/plugins, te debería crear una carpeta llamada nextgen-gallery
  • Baja el JW Image Rotator, descomprime el archivo, y copia el archivo imagerotator.swf a la carpeta nextgen-gallery
  • Crea en wp-content una carpeta llamada gallery con permisos de escritura
  • Tendrás dos plugins nuevos, NextGEN Gallery y NextGEN Gallery widget, activa el primero y el segundo solo si deseas usarlo en la sidebar

Utilización

Ahora que has activado el Plugin, notarás una nueva sección junto a Options (Opciones)

Opciones

Echemos un vistazo en ella

vistazo

Procedamos ahora a explicar de forma básica su funcionamiento

Creación de Álbumnes

  1. Damos clic en la opción Album dentro de Gallery
  2. Buscamos Add New Album, escribimos el nombre del álbum y presionamos Update

Crear albúm

Nuestro álbum ha sido creado y esta disponible para más adelante

Álbum listo

Creación de Galerías

Veamos ahora como se hacen las galerías, el siguiente paso en nuestro proceso

  • Vayamos a Add Gallery dentro de Gallery
  • En New Gallery, escribamos el nombre de nuestra galería y presionemos Update

New Gallery

Una vez creada, NextGEN nos arroja información importante que usaremos después

galería creada

Administración de Galerías

Ahora que hemos creados una galería, vamos a ver las funciones básicas para su administración, como la edición de la galería, su eliminación y el añadido de fotos a la misma.

Eliminar

  • Nos movemos a Manage Gallery, encontraremos una lista de las galerías que llevamos hasta ahora
  • Presionamos el botón Delete a un lado de la galería correspondiente y le damos clic al botón Ok, de la ventana javascript que nos pide confirmación

eliminar galería

Editar

  • En la misma sección de Manage Gallery, presionamos el botón Edit junto a la galería que vamos a editar
  • Nos lleva a una nueva ventana con las siguientes opciones:
    1. Title: Título de la galería
    2. Description: Descripción de la galería
    3. Path: Ruta relativa de la galería
    4. Page Link To: Podemos ligar la galería a una página creada por Wordpress, el valor por defecto es Not Linked (no ligada)
    5. Preview Image: Imagen que servirá de Thumbnail a toda la galería, el valor por defecto es No Picture (Sin imagen)
    6. Create New Page: Se usa, si queremos que se genera una página Wordpress nueva por cada galería, el valor por defecto es Main Page(no parent) (Página principal sin página padre)
    7. Save Changes: Guarda los cambios
    8. Scan Folder For New Images: Revisa la carpeta por si hemos puesto fotos ahí sin hacer uso de NextGEN y las agrega

Editar galería

Agregar Fotos

  • Vamos a Add Gallery, luego a Upload Images (Este paso lo podemos repetir según la cantidad de fotos que queramos)
  • Por cada foto que se agrega, se genera un botón Remove, por si queremos eliminar alguna foto antes de subirlas a la galería
    Remove Photos
  • En Upload Image, seleccionamos la foto que queremos subir a nuestra galería
  • Luego en In to, escogemos la galería destino
  • Presionamos Upload Images

upload images

Administrar las fotos

¡Hemos subido fotos, es hora de ver que podemos hacer con ellas antes de visualizarlas en nuestro blog.

  • Nos vamos a Manage Gallery, luego pulsamos en Edit sobre la galería en la que hemos añadido las fotos. Si nos fijamos ahora, en la parte inferior de la ventana tenemos una sección que antes existía, pero estaba desierta, analicemos lo que podemos hacer en ella:
    1. ID: El Id de la foto
    2. File Name: El nombre de la foto
    3. Thumbnail: La miniatura de la foto, se puede ocultar, seleccionando el checkbox de la foto y presionando el botón Hide Thumbnails (y similar para mostrarla de nuevo, solo que ahora el botón se llama Show Thumbnails)
    4. Description: Escribe una breve descripción de la imagen
    5. Alt & Title: Para rellenar los atributos Alt y title de la etiqueta img
    6. Exclude: Evita que se vea en la galería
    7. View: Hace una vista previa de la foto
    8. Delete: Elimina la foto

Fotos

Agregar Tags a las fotos

Las Tags son importantes porque ayudan a los navegadores a encontrar nuestras fotos, sirven para categorizar y ordenar también entre otras funciones, para colocar las tags a nuestras fotos, primero hay que usar el checkbox correspondiente a la foto que queremos editar, luego presionar el botón Show Tags (para ocultar las tags, presionamos de nuevo el botón que ahora dice Hide Tags)

taggear fotos

Terminado todo, presionamos Save Changes

Usando NextGen en nuestro blog

Ha llegado la hora de la verdad, veamos como usar NextGEN en nuestro blog. Para mostrar una foto, debemos colocar el siguiente código en un post o una página:

PHP:
  1. [singlepic=id,width,height,mode,float]

Donde:

  • id: Id de la foto
  • width: Ancho de la imagen
  • height: Alto de la imagen
  • mode: Es opcional y se usa uno de dos posibles valoes: web20 - agrega un efecto de reflejo, watermark - agrega una sencilla marca de agua, definida en el mismo panel de administración
  • float: left (izquierda) o right (derecha)

Ejemplos:

web2.0

watermark

Para mostrar una galería:

PHP:
  1. [gallery=id]

Siendo id el ID de la galería. Cabe decir que esto, vierte el contenido de la galería en directo donde sea colocado, con un lindo enlace para cambiar a modo de diapositivas.

Galería

Finalmente, para colocar un álbum se usa:

PHP:
  1. [album=id]

Siendo id, el ID del álbum. Esto te entrega el álbum completo, como usa ajax, desde ahí puedes navegar en las galerías que están dentro del álbum y sus fotos.

album

Hasta aquí llega este extenso artículo sobre el plugin NextGEN Gallery, por supuesto quedaron algunos detalles en el tintero, pero será mejor que explores el plugin y descubras la enorme riqueza que te ofrece, como una idea de lo que faltó, puedes ir a Gallery, Options y configurar muchas cosas del plugin como la marca de agua, los efectos para mostrar las fotos, los thumbnail, etc. ¡Explora y diviertete!

October 20 2007

Actualización programada

Dentro de 4 horas, empezaremos la actualización de Wordpress a la versión más reciente, por lo que es posible que se puedan experimentar algunos problema durante ese cambio, de cualquier forma, el blog no estará disponible desde esa hora, hasta que se acabe todo le proceso, actualizaremos el theme, verificaremos plugins y cosas por el estilo. ¡Gracias!

NOTA: La actualización ha terminado. Agradeceré cualquier situación anómala que encuentren. ¡Gracias de nuevo!

RSS