Changes between Version 1 and Version 2 of phpgwapi/dev


Ignore:
Timestamp:
11/05/09 07:47:43 (14 years ago)
Author:
amuller
Comment:

Atualização da API

Legend:

Unmodified
Added
Removed
Modified
  • phpgwapi/dev

    v1 v2  
    22== Desenvolvimento == 
    33 
    4  == 1. Customização do eGroupWare para o Expresso == 
     4 == 1. Apresentação da API == 
    55 
    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. 
    812        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: 
    913{{{ 
     14--raíz do expresso 
     15|   |--header.inc.php 
     16 
     17|   |--header.session.inc.php 
    1018 
    1119  --appname 
     
    1321    +--inc 
    1422      |   |--functions.inc.php 
    15  
    16       |   |--header.inc.php 
    1723 
    1824      |   |--hook_preferences.inc.php 
     
    4147 
    4248    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. 
    4462 
    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 }}} 
     63A ferramenta eGroupWare utiliza o esquema de templates da própria API (Application Program Interface) do PHP, simplificando a criação de templates personalizados. 
    5264 
    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. 
    5565 
    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'. 
     66Para 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 
     68Analogamente, 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'. 
    5769 
    5870    Utilizando este procedimento, a Celepar criou o template personalizado, customizando o eGroupWare e gerando o Expresso Livre. 
    5971 
     72 == 1.3 Criando um módulo == 
     73 
     74Depois 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 
    6076 == 2. Arquitetura Interna do Sistema == 
    6177 
    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. 
    6379        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: 
    6480{{{ 
     
    6783}}} 
    6884 
    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'. 
    7086 
    7187        Arquitetura dividida em três camadas: