lunes, 19 de mayo de 2008

P4A 3 tiene liberación candidata 2 (RC)

Hay un montón de cosas que hablar hoy, comencemos.

IMPORTANTE: SF 2008 COMMUNITY CHOICE AWARDS
Por favor toma 1 minuto para votar P4A a la categoría "Mejor Herramienta o Utilidad para Desarrolladores" (puedes nominar a P4A para otras categorías pero pensamos que el sugerido es el correcto).

LA LIBERACIÓN
Esta no es mas que una liberación de corrección de errores, aqui esta la lista de cambios:
  • Fue resuelto un error con el método P4A_Field::getAsCheckBox().
  • Cuando el valor de P4A_Field viene desde POST, P4A::main() ahora chequea si el campo esta activado.
  • Fueron sincronizadas las traducciones.

Descargar P4A 3.0.0-rc2

P4A WEBSITE
Nos tomó algún tiempo trabajar con el sitio web y agregar algunas caracteristicas cool, en primer lugar una buena sección de screenshots, gracias a jQuery y los plugins jCarousel y lightbox.
Aquí un screenshot de la nueva página:

Asegurate de ver la nueva página en
http://p4a.sourceforge.net/
En la nueva barra de enlaces encontrarás la constantemente actualizada referencia del código y el enlace a la herramienta de traducción y todo lo que necesitas para vivir en el mundo P4A.

P4A WIKI
La nueva wiki está instalada y disponible aquí:
http://p4a.crealabsfoundation.org/wiki/ esta completamente vacía pero puedes comenzar registrándote y discutiremos que publicar y como hacerlo en los próximos días.
PS: la wiki no esta enlazada desde la pagina principal aun, estamos esperando por algunos contenidos para hacerlo.

MISCELÁNEO
  • Estamos trabajando en la licencia comercial y esperamos tenerla lista pronto.
  • Parece que la liberación del nuevo jQuery y jQuery UI será en unos días, si esto es así esteremos contentos de incluirlo en P4A 3.
  • Estoy seguro que olvido algo :-)
Hasta pronto y a difundirlo al mundo!!!

NOTA (dcarrero): Esta traducción fue realizada el día 19 por enfermedad, espero que no les haya molestado.

martes, 6 de mayo de 2008

P4A 3 tiene liberación candidata (RC)

Tiempo para liberar algunos bugfixes y preparar para la liberación estable, hemos tenido que recortar jQuery UI( y el drag &drop de P4A_DB_Navigator) desde nuestra hoja porque parece que jQuery UI no será liberada pronto y no podemos esperar más.

De todas formas aquí esta la lista de cambios:

  • El método saveUploads() fue movido desde P4A_Mask a P4a_Data_Source.
  • El segundo parámetro del método P4A::quote() ahora es falso por defecto, resolviendo algunos problemas con P4A_Data_Field::getSQLValue() y getSQLNewValue().
  • Cuando P4A_DB_Source necesita un valor entre comillas ahora usa P4A_DB->quote() con autoquote activado.
  • En el método P4A_DB::quote(), si autoquote esta activado, siempre encierra el valor con comillas simples.
  • jQuery::form fue actualizado a 2.0.8.
  • jQuery::iFixPNG fue actualizado a 2.1.
  • El CSS de P4A_Menu fue cambiado un poco resolviendo un bug con IE6 (escondido muy rápido).
  • Los movimientos de P4A_DB_Navigator están desactivados (debido a la no liberación de jQuery UI) por lo que ahora todos los movimientos permitidos son errores.
Vamos a dejar el resto de esta liberación para algunas semanas, durante este tiempo trabajaremos en la documentación y el sitio web, arreglando los bugs que eventualmente salgan. Si todo sale sin problemas, como espero, simplemente sincronizaremos las traducciones y liberaremos como 3.0.0 final.
Ahora puedes Descargar P4A 3.0.0-rc1, por favor ayudanos con las traducciones y reporta todos los errores que encuentres! Muchas gracias !

jueves, 10 de abril de 2008

10mo preview para P4A 3, mejoras importantes y optimizaciones

La fase de prueba está pasando, por lo tanto, unas pequeñas modificaciones se realizaron en muchas partes del código P4A.
  • Una de las cosas importantes para los desarrolladores es que ahora todos los métodos P4A_DB puede utilizar la característica "vinculante" que viene con Zend Framework / PDO.
  • Otras mejoras se lograron P4A si ejecuta en servidores Windows
  • FCKEditor se ha actualizado a la nueva y brillante liberación 2,6 y otras bibliotecas también se actualizaron.
Pero lo más maravilloso es la mejora Javascript / CSS lazy loading. Tenemos muchos javascript pesados con P4A (FCKEditor, el seleccionador de fechas, etc.) y algunas veces su aplicación no las usa... ahora cada componente se carga solo cuando se necesita y sus aplicaciones se iniciaran y correrán mas rápido!
En cualquier caso, revisemos la lista de cambios:
  • Fue resuelto un bug con P4A_Field::getAsRadio() (en las labels se puede hacer clic).
  • Fue agregada la función global P4A_Rmdir_Recursive().
  • El método P4A_Data_Field::setSequence() no agrega más el “_seq” en postfix.
  • El método P4A_DB::nextSequenceId() agrega el “_seq” de postfix dependiendo de la db que esta usando.
  • Fue agregado un respaldo SQL para PostgreSQL al ejemplo products_catalogue.
  • El respaldo para MySQL para products_catalogue fue renombrado a db_dump_mysql.sql.
  • La función global P4A_Quote_SQL_Value() fue eliminada.
  • Fue agregado el método P4A_DB::quote() (es un envoltorio para el método Zend_DB quote).
  • Los métodos P4A_DB::get*(), fetch*(), query*() ahora soportan un array de parametros vinculantes.
  • Las reglas de auto detección P4A_ROOT_PATH fueron cambiadas un poco para la compatibilidad con servidores Windows.
  • La función global P4A_Strip_Double_Backslashes() fue agregada.
  • Las reglas de auto detección P4A_UPLOADS_DIR fueron cambiadas un poco para la compatibilidad con servidores Windows.
  • El CSS para la etiqueta (label) de P4A_Fieldset fue cambiado para la compatibilidad con Safari 3.1.
  • El CSS de P4A_Label fue cambiado un poco para mantener la compatibilidad entre navegadores.
  • El CSS de P4A_Field::getasText() ahora tiene por defecto un ancho (150px).
  • Fue resuelto un error con el método P4A_I18N::mergeTranslation().
  • FCKEditor fue actualizado a 2.6.
  • jQuery::UI::datepicker fue actualizado a 3.4.3.
  • javascript/css lazy loading fue implementado, todos los js/css dependientes de los widget son cargados solo perdiendo un monto de KB en el inicio.
  • El CSS de impresion fue eliminado.
  • Las traducciones fueron sincronizadas.
  • El mensaje "Loading..." ahora puede ser traducido.

Ahora puedes Download P4A 2.99.9, por favor ayudanos con las traducciones y reporta todos los errores que encuentres! Muchas gracias !

PD: Recuerda mantener tus ojos en P4A TV!
PPD: difundelo al mundo :-)

Entrada original:
http://tinyurl.com/5cfcpr

viernes, 4 de abril de 2008

TIP 1: Menú con elementos anidados

Dentro del grupo de usuarios de p4a en español, Eddie nos ha colaborado con esta manera de hacer un menú con un array, permitiendo la mantención y legibilidad del código.

class Program extends P4A {

public function __construct() {
parent::_construct();

$menu =& $this->build("P4A_Menu", "menu");

$items = array(
"catalogos" => array("Catálogos", array(
"seguridad" => array(null, array(
"usuarios" => array(null, null),
"perfiles" => array(null, null),
"modulos" => array("Módulos", null),
"elementos" => array(null, null),
"-" => array(null, null),
"bitacora" => array("Bitácora", null))),
"plantilla" => array(null, array(
"careas" => array("Áreas", null),
"departamentos" => array(null, null),
"niveles" => array(null, null),
"plazas" => array(null, null),
"- " => array(null, null),
"puestos" => array(null, null))),
"nomina" => array("Nómina", array(
"periodos" => array(null, null),
"empleados" => array(null, null))),
"-" => array(null, null),
"tipos" => array(null, array(
"t_areas" => array("Áreas", null),
"nominas" => array("Nóminas", null),
"t_periodos" => array("Periodos", null),
"t_eventos" => array("Eventos", null))))),
"herramientas" => array(null, null),
"procesos" => array(null, null),
"reportes" => array(null, array(
"r_plantilla" => array("Plantilla de Personal (resumen)", null))));

$this->agregaMenu($menu, $items);
}

private function agregaMenu($menu, $items) {
foreach ($items as $nombre => $propiedades) {
$item =& $menu->addItem($nombre);
if($nombre === "-") {
$item->setLabel(str_repeat("-", 20));
} else {
if ($propiedades[0]) {
$item->setLabel($propiedades[0]);
}

if (is_array($propiedades[1])) {
$this->agregaMenu($item, $propiedades[1]);
}
else {
$item->implement("onClick", $this, "muestraMascara");
}
}
}
}

public function muestraMascara() {
$this->openMask($this->active_object->getName());
}
}
Puedes ver el código en la siguiente dirección:

http://p4aenespanol.pastebin.com/m64682c5c

Creo que el código se explica bastante bien, esperamos que sea útil.
Y esperamos sus comentarios !!!

Saludos.

jueves, 3 de abril de 2008

Multiples bases de datos en nuestras aplicaciones

Hoy Fabrizio ha publicado un screencast importante, como conectar nuestra aplicación a múltiples bases de datos en nuestras aplicaciones.

Este screencast muestra la definición de las constantes en el archivo index.php, como se puede ver a continuación.

define("P4A_DSN", 'pgsql://p4a:p4a@localhost/p4a_products_catalogue')

Donde podemos definir nuestra conexión a la base de datos, ya sea esta en Mysql, Postgresql, Oracle o Sqlite.

Además llama la atención, el uso de la función P4a_Db_Source::setDSN(), mírenlo y prueben en su servidor.

De esta forma:

$this->build("p4a_db_source","brands")
->setDSN("pgsql://p4a:p4a@localhost/p4a_products_catalogue")
->setTable("brands")
->addOrder("description")
->load();


http://p4a.crealabsfoundation.org/tv/2008/04/02/multidatabase.html


Saludos a todos

Pronto comenzaremos con algunos tips.

viernes, 28 de marzo de 2008

9no preview para P4A 3, más cerca.

Tiempo para una liberación preliminar de fin de semana, solo una tarea mas en nuestro objetivo, que es el P4A_DB_Navigator drag&drop, pero tenemos que esperar por que se libere JQuery UI 1.5 antes de completarla...

Lista de cambios para esta liberación:

  • Algunos pequeños cambios se hicieron despues de estrictos controles de validación.
  • El ejemplo products_catalogue ahora tiene un campo "date" para jugar.
  • Fue resuelto un bug con valores vacios en P4A_Tables (pasado a formatters).
  • Los métodos P4A_I18N::format() y normalize() ahora retornan una cadena vacia si no se pasa un valor.
  • El método P4A_Validate_NotEmpty::isValid() ahora maneja correctamente la cadena "0" (Este es un bug en Zend Framework pero creamos un trabajo para ello).
  • El método P4A_I18N::traslate() retorna una cadena vacia si nada es pasado.
  • Actualizaciones menores fueron hechas en P4A_DB_Source
  • Zend Framework fue actualizado a 1.5.1
  • Los métodos P4A_Field::getAsMulticheckbox() y getAsRadio() ahora usan la funcion global P4A_Generate_Widget_Layout_Table() para dibujar etiquetas (labels) y entradas (imputs).
  • La entrada P4A_Field::getAsDate() es ahora "readonly", solo lectura.
  • Fue resuelto un bug con el método que maneja fechas, P4A_I18N::format() (forzando el formato a YYYY-MM-dd).
Ahora puedes Descargar P4A 2.99.8, por favor ayudanos con las traducciones y reporta todos los errores que encuentres! Muchas gracias !

PD: Recuerda mantener tus ojos en P4A TV!
PPD: difundelo al mundo :-)

martes, 25 de marzo de 2008

8vo preview para P4A 3

P4A 3 se viene, tenemos solo 2 tareas más para completar nuestro objetivo.

Para 2.99.7, saliendo como la 8va liberación, he trabajado sobre todo en el apoyo a la traducción multilenguaje para construir aplicaciones y ahora nuestro ejemplo products_catalogue tiene características de multilenguaje que debes explorar.

La lista de cambios:
  • Fue resuelto un bug con P4A_Field::getAsCheckbox() deshabilitado.
  • El CSS de P4A_Field::getAsRadio() fue modificado un poco.
  • La leyenda de P4A_Fieldset ahora se auto traduce en getAsString().
  • Los items de P4A_Menu ahora son auto traducidos en getAsString().
  • El titulo de P4A_Mask ahora se auto traduce en getAsString().
  • Los nombres de cabecera de P4A_Table ahora se auto traduce en getAsString().
  • El titulo de P4A_Mask es ahora generado automáticamente usando la función ucfirst() en vez de ucwords().
  • El método P4A_I18N::mergeTranslation() fue agregado.
  • El ejemplo de la aplicación products_catalogue fue cambiado para simplicarla (La estructura SQL también).
  • Fue agregado soporte multi lenguaje en el ejemplo de la aplicación products_catalogue.
  • Los métodos P4A:I18N::format() y normalize() ahora tienen un nuevo parametro que permite controlar el código, si el método debe lanzar una excepción o no (por defecto es TRUE).
  • P4A_Fields ahora apaga la excepción para lanzar parámetros cuando llama a P4A:I18N::format() o P4A:I18N::normalize(), para evitar que la aplicación se quiebre debido a una mala entrada.
Ahora puedes Descargar P4A 2.99.7, por favor ayudanos con las traducciones y reporta todos los errores que encuentres! Muchas gracias !

PD: Recuerda mantener tus ojos en P4A TV!
PPD: difunde al mundo :-)