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 ...