Archivo de la etiqueta: PHP

Pathauto idioma neutral

(En inglés ‘Language Neutral Pathauto’)

La versión para Drupal 6 de pathauto tiene un problema con la gestión de los paths en sitios con varios idiomas. El problema es que todos los nodos que cree cualquier usuario se crearán con el path automático en el idioma del usuario, independientemente si el tipo de contenido en particular acepta o no traducción del contenido o contenido en diferente idioma (modula “Content Translate” del core). Esto es un problema porque los usuarios que visiten ese URL que tengan otro idioma no podrán ver el nodo (404) porque no existe ese path para su idioma… de nuevo, es un tipo de contenido que no acepta traducción!!

La problema fue reportado pero los autores justifican que es una característica (yo insisto que es un error, porque es para tipos de contenido que no tengan traducción) y la solución propuesta, agregar una opción en la página de administración no les gustó porque indican que no quieren agregar más opciones al panel de administración (Así? Sin más? Sin proponer otra cosa :S). Al final el error no fue arreglado :S

La solución acá propuesta sigue sin ser perfecta, porque aplicará para todos los nodos nuevos, no por tipo de contenido:


************************************************************************
File: pathauto/pathauto.admin.inc
Line: 29
Function: pathauto_admin_settings()
Hack:

// HACK: Pathauto ignore language setting
$form['general']['pathauto_ignore_language'] = array(
'#type' => 'checkbox',
'#title' => t('Force Language Neutral'),
'#default_value' => variable_get('pathauto_ignore_language', FALSE),
'#description' => t('Create path in language neutral mode'),
);

************************************************************************

************************************************************************
File: pathauto/pathauto.inc
Line: 427
Function: _pathauto_set_alias($path, $existing_alias = NULL, $op = NULL)
Hack:

// HACK: Should we ignore language setting
if ((bool) variable_get('pathauto_ignore_language', FALSE)) {
// _pathauto_verbose('pathauto_ignore_language is TRUE. Current language: ' . $path['language']);
$path['language'] = '';
}

************************************************************************

Anuncios
Etiquetado ,

Servidor WAMP Portable

Un poco de historia

Esto es raro, yo escribiendo cosas relacionadas con Windows. Cómo llegué a esto:

Este semestre estoy llevando el curso de Bases de datos y estoy trabajando en un proyecto de investigación donde estamos extendiendo y adaptando Elgg, eso es, trabajando en un LAMP (Linux, Apache, MySQL y PHP). Antes de mudarme al nuevo apartamento tenía una conexión a internet con IP pública y yo era el administrador del router. Por lo que usaba mi computadora como servidor LAMP y accedía a ella desde cualquier lado. Es decir, podía desarrollar desde cualquier lado.

Cuales son las limitantes? Bueno, son varias. Primero, en el nuevo apartamento por fin tengo internet, pero no soy administrador del router, por lo que mi computadora no está en la zona desmilitarizada (DMZ) o los puertos necesarios no están redireccionados a mi computadora por lo que por ahora no puedo usar mi desktop como servidor. Segundo, paso gran parte de mi tiempo en el Tecnológico, por lo que necesito poder programar en cualquier computadora. Tercero, todo lo que programe para bases de datos debe correr en los laboratorios.

La primera solución es utilizar las facilidades de los laboratorios, pero aunque los laboratorios cuentan con facilidades de bases de datos y PHP en la cuenta de GNU/Linux, hay que pedir una base de datos en la oficina de TI, rellenar un formulario, etc. Esta opción me daba pereza, por varias razones:

  • La información se podría quedar en mi cuenta de IC, y el desarrollo en mi casa tendría que hacerlo por SSH y me gustan las cosas con una linda interfaz gráfica. Pero bueno, se puede, el problema es cuando me iba a reuniones con el equipo de trabajo, necesitaba llevar los archivos en mi llave, porque a veces vamos a lugares sin internet, pero sin Apache, PHP o MySQL no sirven de nada. Pude instalar un WAMP en la laptop de trabajo que siempre llevan, pero eso me lleva al segundo problema. Además sería incómodo tener que importar/exportar la base de datos cada vez que me cambio de máquina.
  • De no quedarse los archivos en mi cuenta de IC y de llevarlos a cada rato, necesitaría varias instalaciones de software con las mismas características. Y si ya es complicado y lleva tiempo tener un buen webserver ahora tener varios sería retrabajo innecesario.
  • El tercer problema usando las cuentas de IC es que sería usuario del sistema, no tendría permisos de administración, no podría instalar módulos de PHP, actualizarlo, configurarlo como lo necesito, no podría crear bases de datos a mi antojo (que lo hago muy comunmente, porque arruino alguna xD, quiero mantener el backup de otra, desarrollar en una y en otra, probar cosas nuevas sin tener que cambiar la que ya sirve, etc).

Bueno, suficiente historia poco interesante. La solución (por lo menos por ahora) salió a la luz cuando de casualidad estaba buscando actualizaciones de la plataforma PortableApps para el pre-FliSol próximo que está organizado la Red Costarricense de Software Libre. Me di cuenta que existe un paquete de software llamado XAMPP, X se refiere a cualquier OS (es porque hay para Linux, MacOS X, Solaris y Windows), Apache, MySQL, PHP, Perl. De esta forma puedo tener un servidor web y un entorno de programación en mi llave USB ideal para las actuales necesidades. Ojalá hubiera PortableApps para mi Ubuntu, pero bueno, por lo menos PortableApps, Apache, MySQL, PHP, Perl, phpMyAdmin, etc, etc, son software libre, excepto el OS 😛

¿Cómo instalar el software portable?

1. Descargar e instalar en la llave USB la suite de PortableApps

http://portableapps.com/download

Se pueden descargar cualquiera de las tres ediciones, lo que importa es la suite. En mi caso realizé la instalación en F:\Portable Apps pues mi llave es la unidad F.

2. Descargar e instalar el paquete XAMPP.

http://portableapps.com/apps/development/xampp

Se pueden descargar cualquier edición (full o lite) pero en su versión ZIP. Yo me descargué la “XAMPP Lite” pues incluye todo lo necesario:

  • Apache 2.2.11
  • PHP 5.2.8
  • MySQL 5.1.30
  • phpMyAdmin 3.1.1
  • OpenSSL 0.9.8i
  • SQLite 2.8.15.

Una vez descargado procedemos a descomprimirlo en la llave, obligatorio que sea en el directorio raíz o el plugin luego no lo encontrará. Una vez descomprimido encontraremos una carpeta llamada xampplite (o xampp si no elegimos la versión Lite), dentro de la cual estarán todos los archivos del servidor. Recuerden, esta carpeta debe quedar dentro de la raíz de la llave USB, por ejemplo en mi caso es F:\xampplite

3. Descargar “XAMPP Launcher” también disponible desde el sitio anterior. Este es el plugin de PortableApps que nos permite controlarlo desde la aplicación.

http://portableapps.com/apps/development/xampp

Una vez descargado doble click y procedemos a instalarlo en la carpeta PortableApps dentro de la carpeta de instalación de la suite de PortableApps (ojo, lean bien, es confuso). En mi caso la carpeta es:

F:\Portable Apps\PortableApps

4. Ejecutar StartPortableApps.exe y nos saldrá el menú de PortableApps. Deberá reconocer la nueva aplicación, si no, le damos a la opción de refrescar íconos que se encuentra en opciones.

portable-xampp

Seleccionamos el ícono XAMPP Control Panel y ejecutamos Apache y MySQL. Con eso ya tendremos el webserver funcionando.

xampp-control-panel

5. Desde cualquier navegador (en mi caso, Firefox Portable, de la misma suite) podremos entrar al panel de administración. Escribimos en la barra 127.0.0.1 (o http://localhost, pero por ahí leí que mejor no, porque hay alguien que se confunde) y seleccionamos el idioma. Ahora podrás acceder a todas las herramientas de administración.

xampp-welcome

xampp-administration

6. Para instalar una aplicación web dinámica (Elgg, Drupal, Joomla, etc) dentro de nuestro servidor web portable procederemos, por ejemplo, desde phpMyAdmin podemos crear y configurar la base de datos MySQL y los archivos deberán ser copiados a xampplite\htdocs.

Espero que les sirva.

Saludos!

Etiquetado , , , , , , ,