Variables en URL con WordPress provocan un 404 not found

Estoy creando un template en WordPress que requiere pasarle unas variables vía URL para mostrar un contenido u otro. Lo que quiero hacer es que según estas variables se me muestren las entradas de una categoría u otra dependiendo de una variable, y a su vez otra variable que me indique el año.

Pues bien, para estas dos variables elegí los nombres cat y year. Al acceder a la página principal no había ningún problema, pero al acceder a una url así:

 

La página mostrada ya no es el contenido de http://dominio.com/pagina/ sino que me devuelve la página 404 Not found (contenido no encontrado).

Después de mucho rebuscar, por lo visto no se pueden utilizar según que variables como parámetros en la URL. El listado de las variables que no pueden utilizarse está en esta url (por lo visto da igual que ponga Public o Private, no se pueden utilizar ninguna de ellas…):

https://codex.wordpress.org/WordPress_Query_Vars

Para que no de el error simplemente hay que cambiar el parámetro year por otro nombre, con lo que la url quedaría algo así:

Fallo al instalar OSX El Capitán en un SSD nuevo

Bueno, pues llegó el día en el que el disco duro, que ya había estado avisándome previamente, decidió que ya estaba bien y que él ya tenía una edad como para seguir currando al ritmo que lo hacía. Así que empezó a hacer soniditos raros y me bloqueaba el sistema operativo constantemente.

El caso es que después de hacer de cirujano, instalé un nuevo SSD.

Ya tenía un USB de una instalación previa que hice de OSX El Capitán, así que utilicé ese pen para hacer la nueva instalación. El pen lo creé siguiendo las instrucciones de Mashable para hacer una nueva instalación limpia de OSX El Capitan http://mashable.com/2015/10/01/clean-install-os-x-el-capitan/

Al arrancar la instalación de OSX siguiendo los pasos de Mashable… ERROR!!

No se ha podido instalar OS X en el ordenador. No se han detectado paquetes apropiados para la instalación. Póngase en contacto con el fabricante de software para solicitar ayuda. Salga del instalador para reiniciar el ordenador e inténtelo de nuevo

Bueno, para el que le de el mismo error me dejo de historias. Resulta que no se cómo (porque no lo he tocado) el USB estaba corrompido y le faltaba algún que otro paquete. Hice otra vez el USB nuevo siguiendo las instrucciones de Mashable y instalando está… (por lo menos ya no me da ese error)

PS: Por cierto, si pone que os queda un segundo y se queda estancado no os preocupéis porque el sistema sigue instalándose. Parece ser que el instalador no calcula muy bien lo del tiempo de espera.

Rutas de plantilla en administrador Magento

magento_logo

Se que esto es algo que no todo el mundo busca, pero cuando te dedicas a la creación de módulos en Magento puede servir de mucha ayuda.

Si tienes formularios de configuración que sacar o bloques que renderizan algo en el administrador, sacar las rutas en el administrador si no sabes donde está el bloque que se renderiza puede ser de mucha utilidad.

Por defecto el administrador de Magento solo deja sacar las rutas para frontend, no para backend. Para que el editor te permita poner las rutas en backend hay que modificar el siguiente archivo de configuración:

/app/code/core/Mage/Core/etc/system.xml

Y hay que poner a valor 1 los siguiente parámetros, que se encuentran alrededor de las líneas 553 y 562 en Magento 1.9.1.0:

Después de hacer esto, si accedéis a System / Configuration / Developer con el Configuration Scope en Default Config en lugar de saliros algo así:

rutas-en-administrador-magento-1

os debería salir algo así:

rutas-en-administrador-magento-2

y ya podréis activar las rutas en el administrador.

Al ser un archivo del core, lo ideal es dejar las cosas como están una vez hemos terminado.

+info: http://stackoverflow.com/questions/4373481/enable-template-path-hint-in-admin-pages-magento

Esta entrada va dedicada a mi querido amigo Diego Mestre, que debería tener esto grabado a fuego hace ya mucho tiempo.

Reemplazar cadena en base de datos

Si queremos reemplazar una cadena dentro de una tabla en todas las filas de un campo tenemos que ejecutar el siguiente comando

Yo me apunto las cosas que si no luego se me olvidan…

Buscar y reemplazar texto en fichero grande en consola

Puede ser que en algún momento necesitemos reemplazar una cadena de texto por otra en un archivo muy grande. Esto suele pasar, por ejemplo, cuando estamos haciendo una migración de una web a otro dominio, con lo que queremos cambiar un dominio por otro:

www.dominio.com por nuevodominio.com

El caso es que tenemos un problema, y es que si lo que tenemos como archivo fuente es un dump de una base de datos, y esa base de datos es muy grande (del orden de 20MB para arriba ya va un poco mal la cosa), si intentamos cargar en modo texto la base de datos en cualquier editor de texto, seguramente se nos quede colgado y no nos permita abrirlo. Y aún si conseguimos abrirlo, hacer un reemplazo puede hacer que el ordenador se funda por completo.

Para solucionar esto podemos hacerlo mediante consola con el comando sed

Explicación:

  • sed = Stream EDitor
  • -i = in-place (guardar el archivo original con extensión back)
  • La cadena del comando:
    • s = comando se sustitución
    • original = una expresión regular que describa la cadena a reemplazar (o la cadena en si)
    • nueva = la cadena de reemplazo
    • g = global (reemplazar todas las ocurrencias y no solo la primera)
  • fichero.txt = el archivo en cuestión

Con lo que, estando en la carpeta donde se encuentra el fichero que necesitamos reemplazar, ejecutaríamos el siguiente comando:

y en menos de dos segundos tendremos todo el fichero cambiado.

+info:

http://askubuntu.com/questions/20414/find-and-replace-text-within-a-file-using-commands
http://www.computerhope.com/unix/used.htm

Calendario de Trello local en OSX

logo-blue-lg

Hace poco que uso Trello y se ha convertido en una herramienta indispensable para mi trabajo diario. Tanto es así que echo en falta que tenga un calendario. La versión gold si que lo tiene, pero ahora mismo no me puedo permitir pagar 5$ al mes, aunque en cuanto recupere el vuelo será lo primero que contrate.

Mientras tanto necesito ese calendario para poder visualizar las fechas que pongo en las cards y poder utilizarlo para llevar un control de mis tareas en los diferentes proyectos. Esto podemos conseguirlo instalando la aplicación web creada por François de Metz, Trello Calendar que hace uso de la Api de Trello para mostrar en una página web al estilo Google Calendar las tareas organizadas por fechas.

Para utilizar la webapp tendréis que instalar Redis.  

redis318x260_1

Redis es un sistema de base de datos basado en memoria y que utiliza Trello Calendar para hacer de servidor de base de datos. Para instalar Redis tenéis que seguir los siguientes pasos:

  1. Descargar la última versión de Redis desde su página de descargas http://redis.io/download. Actualmente están en la versión 2.8.13
  2. Seguir las instrucciones de Jasdeep Singh para instalar Redis. También tiene las instrucciones en gist https://gist.github.com/jasdeepsingh/5628569
  3. Una vez tenemos instalado Redis debemos iniciarlo con la orden redis-server

Una vez instalado Redis podemos proceder a instalar Trello Calendar. Trello Calendar está basado en Node.js y npm con lo que si no lo tenéis tendréis que instalarlo también. Podéis seguir las instrucciones de instalación de node.js y npm aquí. Si no tenéis Homebrew os recomiendo que lo instaléis también.

Ya instalado npm deberéis instalar Trello Calendar ejecutando:

Una vez instalado deberéis renombrar el archivo config.json.sample a config.json. En ese archivo tendréis que poner las claves de la API de vuestra cuenta en Trello. Acceded a https://trello.com/1/appKey/generate y poner los datos de clave pública y privada en el archivo config.json. Después de haber hecho esto ejecutar:

Si todo va bien deberíais poder acceder a http://localhost:4000. Ahí deberéis conceder acceso a la API de vuestro Trello y ya podréis ver vuestro calendario.

No siempre funciona pero François de Metz colgó la aplicación en https://trellocalendar-francois2metz.dotcloud.com/ donde podréis usar la aplicación directamente desde su servidor en la nube. Yo personalmente me gusta más tenerlo en local ya que no siempre funciona y yo lo necesito constantemente.

Espero que os sirva.