viernes, 30 de mayo de 2008

Funciones deprecadas o con otras opciones CakePHP 1.2

Estuve viendo un poco y leyendo la documentación y me encuentro con algunas funciones deprecadas o que cambiaron de la version 1.2 de CakePHP con respecto a la 1.1.

Les dejo la lista:
  • Todas las que manejaban forms con el helper html se pasaron al helper form. Pueden ver los cambios en este blog de La Torta en PHP en donde lo explican bien.
  • También la función que utilizabamos para generar listas para los campos select en html llamada generateList() está deprecada. Ahora se utiliza find('list').
    $this->Post->Categoria->find("list")
  • Otra es la función findCount que no estoy seguro si está deprecada pero ahora podemos utilizar find('count')
    $this->Post->find('count', array('conditions' => array('Post.comments_count' => '<>));
  • La función findAll ahora podemos utilizar find('all') para suplantar esta función.
    $this->Post->find('all', array('limit' => 15);
Bueno estas son una pequeña lista que encontré en diferentes blogs y también en algunos proyectos que estoy haciendo.

Saludos ...

jueves, 29 de mayo de 2008

Nuevo Sitio CakePHP-es

El domingo 1 de junio se llevará a cabo una discusión en el irc de cakephp-es. Los temas a discutir serán orientados al nuevo sitio de cakephp-es.

Esperamos que estén presentes la mayoría de los seguidores de este gran framework que nos ayuda cada día en nuestras labores.

La Reunión se llevará a cabo desde las 20 horas (UTC/GMT -5, hora de Panamá).

Para ingresar al irc tienes que ir al servidor freenode.net y el canal es #cakephp-es


Saludos ...

lunes, 26 de mayo de 2008

Nueva versión Ajax Webmail DIMP y Horde 3.2

Después de 30 meses de desarrollo, la gente de Horde Projects ha lanzado la última versión de sus productos Horde 3.2, DIMP 1.0, Horde Groupware 1.1, y otras aplicaciones.

Esta versión incluye varios cambios, dentro de lo que se encuentran:
  • Mejora en el perfomance a travéz de todas las aplicaciones, espcialmente a nivel de base de datos y sobre IMAP.
  • Soporte para sincronización estable a travéz de SyncML.
  • Javascript no obstrusivo, mejorando la interfaz.
  • Soporte WebDAV.
  • Notes encyption.
  • Subtareas y estimación del tiempo en tareas
La verdad me complace mucho saber que este proyecto halla actualizado su webmail. Mi universidad en particular usa este webmail, y a pesar de que se comporta bien, la interfaz de usuario se quedaba corta a nivel de los últimos webmail que están en el mercado.
También podrán encontrar algunos screenshots de la aplicación.

Fuente en inglés: http://janschneider.de/news/35/322

Saludos ...

viernes, 23 de mayo de 2008

Proyecto CakePHP Extensions

Estuve pensando en estos días en crear un proyecto en el cual se hiciera una recopilación de las extensiones que la comunidad ha creado para cakephp. Actualmente cree un proyecto (http://www.assembla.com/wiki/show/cake_extensions) en el cual se tiene un repositorio svn para guardar todas las extensiones.

La persona que desee colaborar en esta iniciativo me puede escribir a mi email danilo.dope at gmail dot com o en el irc freenode canal #cakephp-es.

Actualmente estaba trabajando en un helper para mootools y estaba empezando un componente para picasa.

Bueno espero les guste la idea, y ya saben, el que quiera participar solo me avisa.

Saludos ...

lunes, 19 de mayo de 2008

Código estándar en PHP

El siguiente post que encontré nos muestra algunas reglas para escribir código estándar en php según los estándares que propone PEAR. Pueden ver esta información http://dotpress.wordpress.com/2007/03/29/pear-estandares-de-desarrollo-para-php/

Saludos ...

viernes, 9 de mayo de 2008

Función en Drupal 5.x para setear mensaje

Para setear un mensaje general la api de drupal nos ofrece una función. Esta función es drupal_set_message. Puede ser utilizada dentro de nuestros módulos para efectuar un mensaje al sistema.

Sintáxis
array drupal_set_message($message = null, $type = 'status', $repeat = true)

Parámetros
  • $message: mensaje que vamos a mandar para que la función lo coloque.
  • $type: es el tipo de mensaje. Tiene las siguientes opciones:
    • 'status'
    • 'warning'
    • 'error' --> normalmente color rojo
  • $repeat: si es false el mensaje no se repetirá.
Código

1.    
2.
function drupal_set_message($message = NULL, $type = 'status', $repeat = TRUE) {
3. if ($message) {
4. if (!isset($_SESSION['messages'])) {
5. $_SESSION['messages'] = array();
6. }
7.
8.
if (!isset($_SESSION['messages'][$type])) {
9. $_SESSION['messages'][$type] = array();
10. }
11.
12.
if ($repeat || !in_array($message, $_SESSION['messages'][$type])) {
13. $_SESSION['messages'][$type][] = $message;
14. }
15. }
16.
17.
// messages not set when DB connection fails
18. return isset($_SESSION['messages']) ? $_SESSION['messages'] : NULL;
19. }
20. ?>


Fuente: http://api.drupal.org/api/function/drupal_set_message

Saludos ...

jueves, 8 de mayo de 2008

Función hook_access Drupal 5.x

El hook access dentro del api drupal 5.x para el desarrollo de módulos nos ayuda a definir los permisos de acceso (por ejemplo para crear un tipo de nodo). La cuenta administrativa (con id #1 en la tabla) no tendrá problema para pasar por los permisos de acceso de cualquier módulo. Si no se define este hook para un módulo que defina un tipo de dato, todos los controles de acceso fallarán y sólo el administrador o los usuarios que tengan el permiso "administrar nodos" podrán verlos.

Parámetros:
$op: es la operación a realizar. Por ejemplo:
  • create
  • delete
  • update
  • delete
  • view
Valor de return
Se retorna true si la acción se puede realizar, de lo contrario, se retorna false.

Ej.
1.    
2.
function hook_access($op, $node) {
3. global $user;
4.
5.
if ($op == 'create') {
6. return user_access('create stories');
7. }
8.
9.
if ($op == 'update' || $op == 'delete') {
10. if (user_access('edit own stories') && ($user->uid == $node->uid)) {
11. return TRUE;
12. }
13. }
14. }
15. ?>
Fuente: http://drupa.org/api/function/hook_access/5

Saludos ...

Presentación sobre Programación Orientada a Objetos - Conceptos y su uso en php

Aquí les dejo una presentación que realizé para mi curso de php. Más adelante agrego los ejemplos.



Saludos ...

Custom URL's en Drupal 5.x

Para cambiar el estilo las url's de nuestro sitio en drupal (por ejemplo www.example.com/node/14 a www.example.com/articulo/14) tenemos una función que nos puede ayudar.

Esta función es custom_url_rewrite. A continuación les dejo un ejemplo de modificar la url con node por articulo.


1.
2.
function custom_url_rewrite($op, $result, $path) {
3. if ($op == 'alias') {
4. if (preg_match('|^node/(.*)|', $path, $matches)) {
5. return 'articulo/'. $matches[1];
6. }
7.
8.
}
9. if ($op == 'source') {
10. if (preg_match('|^articulo(/.*)|', $path, $matches)) {
11. return 'node'. $matches[1];
12. }
13.
14.
}
15. return $result;
16. }
17. ?>

Donde si el parámetro $op es 'source' quiere decir que hay que traducirla para el código y si es 'alias' se hace la traducción para la url.

Esta función se guarda en el archivo settings.php de nuestro sitio (por ejemplo ejemplo/sites/default/settings.php)

Saludos ...