Entries Tagged 'PHP' ↓
Julio 18th, 2011 — AJAX, Javascript, PHP, Programacion, Symfony
Voy a intentar explicar con un ejemplo concreto como implementar autocompletado en formularios synfony con sfFormExtraPlugin y Doctrine ORM.
Para ello vamos a utilizar el clásico ejemplo del blog, donde tenemos dos tablas.
post:
id: INT(11)
titulo: VARCHAR(45)
texto: TEXT
categoria_id: INT(11)
y categoria:
id: INT(11)
nombre: VARCHAR(45)
La idea es modificar el formulario ‘PostForm’ para que se vea así:
En primer lugar descargamos la ultima version de jQuery y lo guardamos en el directorio ‘web/js/jquery’ de nuestro proyecto.
Luego instalamos el plugin sfFormExtraPlugin.
En el archivo ’settings.yml’ agregamos la siguiente clave:
all:
jquery_autocomplete: /sfFormExtraPlugin/js/jquery.autocompleter.js
Nota: en la vista donde se va a renderizar nuestro formulario, no debemos olvidarnos de incluir el script ‘jquery-1.6.2.js’ (o el que corresponda a la version que descargamos), ya que el plugin, por alguna razón no lo hace. Para ello podemos usar el helper ‘use_javascript()’ o modificar el archivo ‘view.yml’ del módulo donde vamos a implementar el autocompletado (en este caso el modulo post):
default:
javascripts: [jquery/jquery-1.6.2.js]
En el action del mismo módulo, creamos la acción que retorna un objeto JSON con pares ‘id - nombre’ de categorías:
public function executeBuscarCategoria(sfWebRequest $request)
{
$this->getResponse()->setContentType('application/json');
$categorias = Doctrine::getTable('Categoria')
->retrieveForSelect(
$request->getParameter('q'),
$request->getParameter('limit')
);
return $this->renderText(json_encode($categorias));
}
En CategoriaTable creamos el método que retorna el listado de categorías filtrado por nombre:
public function retrieveForSelect($q, $limit)
{
$q = Doctrine_Query::create()
->from('Categoria')
->andWhere('nombre like ?', '%' . $q . '%')
->addOrderBy('nombre')
->limit($limit);
return $q->execute()->toKeyValueArray('id', 'nombre');
}
Por último, modificamos el formulario (PostForm):
public function configure()
{
$this->widgetSchema['categoria_id']->setOption(
'renderer_class',
'sfWidgetFormDoctrineJQueryAutocompleter'
);
$this->widgetSchema['categoria_id']->setOption(
'renderer_options',
array(
'model' => 'Categoria',
'url' => 'buscarCategoria',
)
);
}
Y esto es todo, solo resta utilizar el formulario ‘PostForm’ en la acción donde sea necesario, en el caso de la imagen anterior, se trata de la acción ‘post/new’ creada mediante el comando ‘doctrine:generate-admin’.
Hasta la próxima!
Noviembre 27th, 2009 — CakePHP, PHP, Programacion
Una de las cosas que me gustan de Symfony es su barra de debug, que viene por defecto con la instalación del framework y que puede ser visualizada cuando ejecutamos nuestra aplicación en el entorno de desarrollo.
Hasta el momento no sabía de la existencia de alguna herramienta similar para el framework CakePHP , hasta que por estos días me topé con CakePHP debug kit.
CakePHP debug kit es un plugin para para CakePHP, que permite ver información de variables de sesión, variables en vista y controladores, SQL log, historial de navegacion, información sobre la petición y hasta benchmarks.
La instalación es realmente sencilla. En primer lugar se debe descargar el plugin desde este enlace, una vez descargado, se descomprime y se copia al directorio app/plugins de nuestra instalacion de CakePHP. Una ves realizado esto, solo resta agregar la siguiente línea en nuestro AppController :
var $components = array('DebugKit.Toolbar');
Y con esto ya tenemos nuestra barra de debug funcionando.
Cabe aclarar que, para que aprovechemos de todas las funcionalidades del debug kit, el nivel de debug de nuestra aplicación debe estar puesto a 2.
Para hacerlo abrimos el archivo core.php ubicado en app/config y nos aseguramos de tener la siguiente linea:
Configure::write('debug', 2);
Una última aclaración, trabajando sin mod_rewrite, el debug kit no logra resolver la ruta de las CSS, imágenes y javascript necesarios para su correcto funcionamiento. Para solucionarlo, la forma más fácil que encontré fue, crear un directorio llamado debug_kit dentro de app/webroot y copiar allí adentro los directorio css, img, js y shell del plugin.

Para obtener más información: http://thechaw.com/debug_kit/wiki
Octubre 9th, 2009 — PHP, Programacion

En el blog de NetBeans for PHP anuncian que el soporte para Symfony, para la versión 6.8 del IDE ya está finalizado.
La nueva versión (actualmente 6.8 milestone 2) incluye algunas características para el desarrollo de aplicaciones sobre Symfony como:
- El completado de código ofrece las variables de Symfony adecuadas en los archivos de vistas.
- Navegación entre vistas y acciones
- Reconocimiento de proyectos de Symfony existentes y la posibilidad de crear nuevos proyectos
- Atajos de teclado asignables para acciones específicas de Symfony
- Posibilidad de ejecutar comandos de Symfony
La versión Milestone 2 de NetBeans 6.8 puede ser descargada desde: http://bits.netbeans.org/netbeans/6.8/m2/
Octubre 5th, 2009 — PHP
Added Bytes nos ofrece esta interesante colección de Cheat Sheets (Hojas de Referencia), para descargar de manera totalmete gratuita.
Podemos encontrar cheat sheets de Python, Subversion, Expresiones Regulares, Apache mod_rewrite, PHP, CSS, Microsoft SQL Server, HTML, Microformatos, Ruby on Rails, ASP / VBScript, Caracteres HTML, JavaScript, MySQL y hasta World of Warcraft.
Enlace: http://www.addedbytes.com/cheat-sheets/
