Sunday, March 16, 2008

Cambiar Dinamicamente el Titulo del Modulo en Symfony

En Symfony cada Modulo puede tener un titulo configurado en el archivo 'modulo/config/view.yml' de la siguiente forma: default:   http_metas:     content-type: text/html metas:   title: Productos   robots: index, follow   description: Administracion de Productos   keywords: Administrar Productos Articulos   language: es Sin embargo el mismo titulo para todo el modulo puede causar dolores de cabeza al usuario del sitio web cuando tiene muchas ventadas a diferentes acciones de un mismo modulo por lo que considero bueno cambiarlo dinamicamente de acuerdo a la accion, esto se hace usando la funcion setTitle del sfWebResponse como sigue:  $this->getResponse()->setTitle('Producto - ' .$this->product->getName()); Ejemplo: public function executeShow() {   &this->product = ProductPeer::retrieveByPk($this->getRequestParameter('id'));   $this->forward404Unless($this->product);   $this->getResponse()->setTitle('Producto - ' .$this->product->getName()); } Bien Sencillo :)

Monday, February 25, 2008

Comillas para Nombres de Tabla Oracle en Symfony

Estoy trabajando en un proyecto usando el PHP Symfony, la base de datos que uso es Oracle 10g y encontrado unos detalles que quiero compartir. Problema En la version 1.0.10 existe un problema con el Creole-Propel y es que el comando symfony propel-build-sql genera un archivo SQL con comillas en los nombres de los objetos, para Oracle esto significa que se hace distincion de mayusculas de Minusculas en estos nombres. Por otra parte los comandos generados por Creole para el OM mediante el comando propel-build-model generan Sentencias SQL sin comillas asi que las consultas fallan al no encontrar las tablas y sequencias con el nombre adecuado. Solucion Editar el archivo config/propel.ini del proyecto y agregar la siguiente linea: propel.disableIdentifierQuoting=true

Wednesday, January 9, 2008

Mover Proyecto Symfony de Ubuntu a Redhat

Actualmente estoy trabajando con PHP Symfony y instalado un proyecto en Redhat que fue generado y construido en Ubuntu por lo que al instalar el symfony usando pear(al igual que ubuntu) la ruta de los archivos de symfony es diferente y al ejecutar cualquier comando de symfony('symfony cc' por ejemplo) ocurren errores al hacer los includes. Ejemplo: jhernandez@POSEIDON-LINUX:~/WebApps/$ symfony cc Warning: include(/usr/share/pear/data/symfony/bin/symfony.php): failed to open stream: No such file or directory in /usr/bin/symfony on line 39 Warning: include(): Failed opening '/usr/share/pear/data/symfony/bin/symfony.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /usr/bin/symfony on line 39 Esto sucede porque el archivo config/config.php apunta a una direccion de los archivos de symfony invalida. En Ubuntu por ejemplo, el archivo config/config.php debe verse similar a este: // symfony directories $sf_symfony_lib_dir = '/usr/share/php/symfony'; $sf_symfony_data_dir = '/usr/share/php/data/symfony'; En Redhat por ejemplo, el archivo config/config.php debe verse similar a este: // symfony directories $sf_symfony_lib_dir = '/usr/share/pear/symfony'; $sf_symfony_data_dir = '/usr/share/pear/data/symfony'; Esto se debe a que el PEAR instala los archivos de php symfony en diferentes rutas de acuerdo a la distribucion. Solo es cuestion de corregirlo para que el problema se solucione.