| 1 | A API deve manusear sessões, usuários e grupos, múltiplos banco de dados, e suporte a módulos. |
| 2 | |
| 3 | * Suporte a templates |
| 4 | * Abstração de usuários e grupos |
| 5 | * Possivelmente uma busca unificada entre todos os módulos |
| 6 | |
| 7 | Suporte a módulos |
| 8 | |
| 9 | A API deve oferecer aos módulos: |
| 10 | |
| 11 | 1. Camada Javascript |
| 12 | a. suporte unificado a línguas |
| 13 | b. suporte unificado a conexões Ajax |
| 14 | c. suporte unificado a apresentação |
| 15 | i. Abas e janelas |
| 16 | ii. Mensagens de erro e status |
| 17 | d. Assistir carregamento e descarregamento do módulo. |
| 18 | e. Teclas de atalho unificadas |
| 19 | f. Comunicação entre os módulos |
| 20 | i. Por exemplo disparar email centralizado no expressoMail, consultar usuários centralizados no !ContactCenter |
| 21 | |
| 22 | 2. Camada Php |
| 23 | a. Preferências |
| 24 | b. Abstração de usuários |
| 25 | |
| 26 | Como é definido o módulo |
| 27 | Raíz (ex. /var/www/expresso/) |
| 28 | |
| 29 | * modulo_exemplo/ |
| 30 | a. index.php |
| 31 | b. templates/ |
| 32 | i. default/ (obrigatório) |
| 33 | ii. outro/ (opicional) |
| 34 | c. inc/ |
| 35 | i. class.appname_ui*.inc.php |
| 36 | ii. class.appname_bo*.inc.php |
| 37 | iii. class.appname_so*.inc.php |
| 38 | iv. hook_*.inc.php |
| 39 | d. js/ |
| 40 | i. main.js |
| 41 | e. setup/ |
| 42 | i. phpgw_pt-br.lang |
| 43 | ii. setup.inc.php |