Changes between Version 1 and Version 2 of phpgwapi/dev
- Timestamp:
- 11/05/09 07:47:43 (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
phpgwapi/dev
v1 v2 2 2 == Desenvolvimento == 3 3 4 == 1. Customização do eGroupWare para o Expresso==4 == 1. Apresentação da API == 5 5 6 A estrutura de diretórios do eGroupWare está definida da seguinte forma: o eGroupWare possui em seu diretório (/egroupware) diversos subdiretórios, que representam cada módulo do sistema. Por exemplo, o módulo de Email está no diretório '/egroupware/email', e o módulo Agenda está no diretório '/egroupware/calendar'. 7 A maioria dos módulos do sistema foi desenvolvida seguindo os padrões de implementação do Core Team do eGroupware, e segue desde padrões de codificação da linguagem, até padrões para a estrutura de diretórios e nome dos arquivos. 6 == 1.1 Customização do eGroupWare para o Expresso == 7 A API do Expresso é uma custumização da API do eGroupWare que por sua vez era uma custumização da API do phpGroupWare. Este guia explica de forma mais clara possível, com mais informações possíveis como é o funcionamento da API do Expresso. Com todas as melhorias que foram agregadas ao longo destas revisões. 8 9 == 1.2 Estrutura de diretórios == 10 A estrutura de diretórios do Expresso está definida da seguinte forma: o expresso possui em seu diretório (raíz /expresso) diversos subdiretórios, que representam cada módulo do sistema. Por exemplo, o módulo de expressoMail está no diretório '/expresso/expressoMail', e o módulo Agenda está no diretório '/expresso/calendar'. 11 A maioria dos módulos do sistema foi desenvolvida seguindo os padrões de implementação do eGroupware, e segue desde padrões de codificação da linguagem, até padrões para a estrutura de diretórios e nome dos arquivos. Algumas raras excessões são exemplificadas ao longo deste documento. 8 12 Para se desenvolver um novo módulo no eGroupWare, é necessário respeitar a seguinte estrutura de diretórios e nomes de arquivos, conforme o modelo descrito abaixo: 9 13 {{{ 14 --raíz do expresso 15 | |--header.inc.php 16 17 | |--header.session.inc.php 10 18 11 19 --appname … … 13 21 +--inc 14 22 | |--functions.inc.php 15 16 | |--header.inc.php17 23 18 24 | |--hook_preferences.inc.php … … 41 47 42 48 Explicando superficialmente a estrutura, tem-se: 43 {{{ 49 * appname: Diretório da aplicação 50 * inc: Diretório que contém as classes e os includes; 51 * functions.inc.php: Códigos php referentes ao seu módulo 52 * hook_preferences.inc.php: Arquivo que está definido quais serão os tipos de preferências do módulo 53 * hook_settings.inc.php: Arquivo que está definido o formulário com as preferências do módulo 54 * hook_admin.inc.php: Arquivo que está definido quais serão os tipos de configurações do módulo 55 * js: Diretório que contém os scripts Javascript(*.js); 56 * setup: Diretório que contém arquivos e scripts de instalação; 57 * setup.inc.php: Este arquivo contém a definição do módulo propriamente dita, nome, versão etc... 58 * tables_update.inc.php: Este arquivo contém as atualizações de banco necessárias nas atualizações de versões 59 * tables_current.inc.php: Este arquivo contém as tabelas de banco necessárias 60 * templates: Diretório que contém o template padrão de interface; 61 * default/css: diretório que contém os css de temas daquele template, naquele módulo. 44 62 45 --appname: Diretório da aplicação (modificar o nome); 46 +--inc: Diretório que contém as classes e os includes; 47 +--js: Diretório que contém os scripts Javascript(*.js); 48 +--setup: Diretório que contém arquivos e scripts de instalação; 49 +--templates Diretório que contém o template padrão de interface; 50 51 }}} 63 A ferramenta eGroupWare utiliza o esquema de templates da própria API (Application Program Interface) do PHP, simplificando a criação de templates personalizados. 52 64 53 A ferramenta eGroupWare utiliza o esquema de templates da própria API (Application Program Interface) do PHP, simplificando a criação de templates personalizados.54 Para criar um novo template no eGroupWare, independente de qual módulo está (layout da página de login, cabeçalho, botões, rodapé, etc), é necessário criar uma nova pasta dentro do diretório '/egroupware/phpgwapi/templates' igual a pasta já existente (ex. celepar), e então modificar os arquivos já existentes, ou adicionar novos arquivos. O diretório '/egroupware/phpgwapi' não é um módulo qualquer, e sim a API do sistema.55 65 56 Analogamente, para criar um novo template (modificar o layout interno de cada módulo), é necessário apenas gerar uma cópia do diretório 'templates/celepar' para outro diretório no mesmo nível, como exemplo: 'templates/novo_template'. 66 Para criar um novo template no eGroupWare, independente de qual módulo está (layout da página de login, cabeçalho, botões, rodapé, etc), é necessário criar uma nova pasta dentro do diretório '/egroupware/phpgwapi/templates' igual a pasta já existente (ex. celepar), e então modificar os arquivos já existentes, ou adicionar novos arquivos. O diretório '/egroupware/phpgwapi' não é um módulo qualquer, e sim a API do sistema. 67 68 Analogamente, para criar um novo template (modificar o layout interno de cada módulo), é necessário apenas gerar uma cópia do diretório 'templates/default' para outro diretório no mesmo nível, como exemplo: 'templates/novo_template'. 57 69 58 70 Utilizando este procedimento, a Celepar criou o template personalizado, customizando o eGroupWare e gerando o Expresso Livre. 59 71 72 == 1.3 Criando um módulo == 73 74 Depois de ter criado uma estrutura de diretórios e arquivos como a explicada acima, existe ainda alguns passos adicionais que devem ser demonstrados pois o fato de criar uma aplicação no sistema de arquivos não é suficiente para se usar o novo módulo. O administrador deve entrar em /setup (via navegador) e instalar a aplicação utilizando o "Passo 5 - Gerenciamento avançado da aplicação". E depois disso atualizar todas as permissões em "Admin/'seção ExpressoAdmin'/gerentes" e também no expressoAdmin grupos ou usuários. 75 60 76 == 2. Arquitetura Interna do Sistema == 61 77 62 Todas aplicações do Expresso são invocadas inicialmente pela mesma página 'index.php', localizada na raiz do eGroupWare.78 Todas aplicações do Expresso (exceto expressoMail e Messenger) são invocadas inicialmente pela mesma página 'index.php', localizada na raiz do eGroupWare. 63 79 Para carregar a página inicial de qualquer módulo, é necessário passar como paramêtro para a 'index.php' um único argumento, exemplificado abaixo: 64 80 {{{ … … 67 83 }}} 68 84 69 Normalmente, uma simples aplicação possui na raiz do seu diretório uma página 'index.php', que fará as chamadas das flags da API do eGroupWare, que por sua vez chamarã os métodos executáveis através da função primária, denotada por index, e localizada em uma das classes 'UI'.85 Normalmente, uma simples aplicação possui na raiz do seu diretório uma página 'index.php', que fará as chamadas das flags da API do eGroupWare, que por sua vez chamarão os métodos executáveis através da função primária, denotada por index, e localizada em uma das classes 'UI'. 70 86 71 87 Arquitetura dividida em três camadas: