ADIANTI FRAMEWORK PARA PHP. 5ª edição AMOSTRA PABLO DALL'OGLIO

Tamanho: px
Começar a partir da página:

Download "ADIANTI FRAMEWORK PARA PHP. 5ª edição AMOSTRA PABLO DALL'OGLIO"

Transcrição

1 ADIANTI FRAMEWORK PARA PHP 5ª edição AMOSTRA PABLO DALL'OGLIO

2 1 Introdução CAPÍTULO 1 Introdução Este capítulo apresenta os conceitos fundamentais presentes no Adianti Framework. Aqui você conhecerá as premissas de desenvolvimento do framework, suas principais características, sua arquitetura, estrutura de diretórios e como se dá o fluxo de execução de seu funcionamento. 1.1 Características Aqui veremos as características do Adianti Framework. Foco em aplicações de negócio Durante a construção do Adianti Framework, em nenhum momento houve a intenção de criar um framework generalista, possibilitando o desenvolvimento de qualquer aplicação com ele, como um site ou um blog. Apesar de ser possí vel realizar tais atividades com o Adianti Framework, ele nasceu dentro de um contexto de desenvolvimento de sistemas de gestão, sistemas de informação, mais popularmente conhecidos como ERP's. Então ele não prima pela flexibili dade de configuração visual de seus componentes. Por outro lado, ele apresenta componentes elaborados, prontos e fáceis de utilizar para a criação de aplica ções de negócio. O que diferencia sites de aplicações de negócio? O importante para a aplicação de negócio é a funcionalidade. O usuário de uma aplicação de negócio não vai solicitar que cada uma das telas do sistema tenha uma cor dife rente, ele deseja que o sistema funcione bem e não se importa que todas as te las do sistema sejam parecidas. Nada impede você de utilizar o framework para desenvolver o back end de um site, inclusive eu o uso para isto, mas sua voca ção realmente não é front end's, para isso existem diversas outras boas soluções no mercado.

3 Capítulo 1 - Introdução Amostra do livro 13 Orientado a componentes Diferentemente de outros frameworks que levam o desenvolvedor a mesclar HTML e PHP em templates, no Adianti Framework esta será uma situação de exceção. A ideia do framework é construir sempre que possível interfaces por meio de componentes. Caso você precise de uma funcionalidade visual muito específica, então use o mecanismo de templates do framework, que permite uti lizar HTML para compor uma interface. Não gostamos de escrever código HTML, CSS, jquery, Bootstrap, dentre outras tecnologias dentro do código fon te da aplicação. Estes códigos devem ficar escondidos dentro do framework, en capsulados dentro de componentes. Assim, o desenvolvedor não precisa ser grande conhecedor destas tecnologias para construir interfaces avançadas, bas ta conhecer os componentes. Como exemplo, para criar componentes utilizados em um formulário, declaramos da seguinte maneira: <?php $nome $senha $nascimento $genero $curriculo?> = = = = = new new new new new TEntry('nome'); TPassword('senha'); TDate('nascimento'); TCombo('genero'); TText('curriculo'); Multi interface Esta é talvez a característica que mais diferencie o Adianti Framework de outros frameworks. O Adianti permite ao desenvolvedor criar aplicações Web e Desk top. A ideia é bastante simples, pois vários componentes do framework são de senvolvidos para as duas plataformas. A interface Web a maioria de vocês já co nhece e a interface desktop é fornecida pela biblioteca Gtk, ou PHP GTK. Assim, dependendo da aplicação, você pode escolher o front end mais adequado sem precisar aprender outra tecnologia. Na figura a seguir é exibido um fragmento de uma aplicação com front end Web à esquerda e Gtk à direita. Figura 1 Formulários Web e Gtk da mesma aplicação

4 14 Amostra do livro Adianti Framework para PHP Baseado em padrões Todo o Adianti Framework é baseado em padrões de projeto. Ao todo, ele utili za em sua implementação mais de 20 padrões de projeto. Dentre eles, podem ser citados: Factory Method, Singleton, Registry, Strategy, Active Record, Iden tity Field, Foreign Key Mapping, Association Table Mapping, Class Table Inheri tance, Composite, Query Object, Layer Supertype, Repository, Model View Con troller, Front Controller, Template View, Remote Facade, Lazy Initialization, dentre outros. Qualidade de código Todo o framework foi desenvolvido seguindo rígidas regras de escrita de có digo fonte. Para provar tal característica, as aplicações de exemplo desenvolvi das no framework podem rodar com o nível máximo de erros habilitado no php.ini e nenhuma mensagem de Warning ou Notice será exibida em tela. Além disso, você não verá a presença de (usada para suprimir erros) no código fonte do framework, muito menos a utilização de recursos como variáveis globais. Pequeno e fácil de instalar Todo o framework foi concebido para ser pequeno e de fácil instalação. Dessa forma, rodar um aplicativo que utiliza o Adianti Framework será tão simples quanto descompactá lo, uma vez que você já tenha o ambiente com os pré requisitos configurados. Abstração da base de dados O Adianti Framework privilegia a independência da aplicação em relação ao banco de dados, mediando essa comunicação por meio de uma camada de abs tração que permite desenvolver aplicações complexas sem escrever nenhuma li nha de SQL, deixando essa tarefa para o framework. <?php $repository = new TRepository('Customer'); $customers = $repository->where('gender', '=', 'M') ->where('name', 'like', 'A%') ->load(); foreach ($customers as $customer) print $customer->phone;?>

5 Capítulo 1 - Introdução Amostra do livro 15 Layout customizável Todas aplicações desenvolvidas pelo Adianti Framework são cercadas por um layout, também chamado de template. O template da aplicação em si é escrito em HTML para uma aplicação Web, e é uma parte do software que envolve co nhecimentos específicos da plataforma adotada (Gtk para Desktop, HTML/CSS para a Web). No site do framework são disponibilizados alguns templates bási cos, mas você possui toda a liberdade de criar um template adaptado às suas necessidades. Toda a aplicação que rodará dentro do layout é escrita somente com os conhe cimentos do framework, utilizando seus componentes. Na figura a seguir temos um exemplo de template disponibilizado no site. Figura 2 Aplicação rodando em template Web Obs: Os templates apresentados no livro são apenas uma sugestão. Você deve alterá los caso eles não estejam adequados para a aplicação que pretende desenvolver.

6 Capítulo 1 - Introdução Amostra do livro Desktop ou Web Uma aplicação desenvolvida com o Adianti Framework pode ser Web ou Desk top, pois a biblioteca de componentes do framework possui as duas versões. No momento de baixar o Adianti Framework, você poderá optar entre baixar a ver são Web ou Desktop (utiliza a biblioteca Gtk). Para o livro não ficar muito ex tenso, ele será baseado na versão Web da biblioteca, mas a maioria dos exemplos funciona nos dois ambientes, com exceção de alguns, que utilizam re cursos específicos da Web, como elementos HTML, ou chamadas à Javascript. No site do framework, você poderá baixar a versão do framework tanto para a Web, quanto para Desktop (Gtk). O que muda entre as duas versões basica mente é a pasta /lib, que conterá a mesma estrutura de diretórios e nomes de arquivos, porém a implementação das classes é diferente. Enquanto que o fra mework utiliza bibliotecas como jquery e Bootstrap para a Web, utiliza o Gtk para o Desktop. Além da pasta /lib, o arquivo index.php também é diferente, pois enquanto que na Web ele exibe um template HTML, no Desktop ele utiliza componentes da biblioteca Gtk para construir a interface. É recomendado que você avalie a necessidade, e opte por uma versão do fra mework. Caso escolha utilizar a versão Web, você poderá customizar a aplica ção com conhecimentos em jquery e Bootstrap, mas se optar pelo ambiente Desktop, deverá conhecer a biblioteca Gtk para customizar a aplicação. Veja na figura a seguir um exemplo de aplicação rodando no ambiente Desktop. Figura 5 Aplicação rodando no ambiente Desktop

7 2 INSTALAÇÃO E CONFIGURAÇÃO CAPÍTULO 2 Instalação e configuração Neste capítulo vamos aprender a dar os primeiros passos com o fra mework. Inicialmente vamos abordar a instalação dos pré requisitos tan to em ambientes web quanto desktop. Em seguida vamos dar os primei ros passos, aprendendo a configurar seu layout por meio de templates. 2.1 Instalação do ambiente Ambiente Linux Nesta seção, será abordada a instalação dos pré requisitos para rodar o Adianti Framework em Linux Ubuntu Dessa forma, instalamos o apache, o PHP, bem como o suporte aos bancos de dados SQLite, PostgreSQL e Mysql. O su porte ao sqlite é fundamental visto que a maioria das aplicações de exemplo que acompanham o framework, utilizam este banco de dados. Instalação Web A instalação do ambiente Web é simples e rápida, vejamos: # # # # sudo su apt-get install apache2 apt-get install libapache2-mod-php5 php5 php5-sqlite php5-pgsql php5-mysql php5-sqlite /etc/init.d/apache2 restart Obs: Durante o período de desenvolvimento, certifique se que a exibição de erros (display_errors = On) esteja habilitada no php.ini Instalação Desktop A preparação do ambiente desktop envolve a instalação do PHP GTK. Deve ser realizado o download do mesmo a partir do site gtk.com.br/linux.

8 32 Amostra do livro Adianti Framework para PHP Desktop Da mesma maneira que uma aplicação Web desenvolvida no Adianti Fra mework possui um template, uma aplicação Desktop em Gtk também possui. A diferença principal é que o template Desktop usa a biblioteca Gtk, ou seja, tudo que se localiza nos arredores do conteúdo principal (imagens, banner, menus), deve ser programado para ser exibido com essa biblioteca. A exceção reside no menu da aplicação, já que a classe TMenuBar faz o trabalho de criar o menu hie rárquico para nós. A figura a seguir demonstra uma janela Desktop rodando no Ubuntu. O conteú do ao centro é o formulário gerado dinamicamente pelo framework. Em segui da veremos como construir a aplicação. Figura 12 Template Gtk com o conteúdo em destaque ao centro Obs: Para mais informações sobre PHP GTK, procure o livro PHP GTK: Criando Apli cações gráficas com PHP, do mesmo autor. O Index No início de nosso template Gtk, realizamos a carga do framework da mesma forma que na aplicação Web, por meio da requisição do arquivo init.php, que por sua vez, fará o carregamento das classes e definições de configurações inici ais como constantes e também o idioma.

9 3 MODELOS E PERSISTÊNCIA CAPÍTULO 3 Modelos e persistência Todo o acesso a bancos de dados dentro do Adianti Framework passa por uma camada orientada a objetos que torna a maioria das operações transparentes ao desenvolvedor. Esta camada de manipulação visa dar maior agilidade na criação das aplicações, bem como fazer com que todo o acesso aos dados ocorra de uma maneira orientada a objetos. Assim, na grande maioria das vezes, você não precisará mais escrever os tradici onais INSERT, UPDATE e DELETE, mas irá simplesmente mandar os ob jetos serem persistidos ou excluídos. 3.1 Modelo utilizado Modelo de classes Ao longo deste capítulo, trabalharemos com vários exemplos envolvendo acesso a banco de dados. Mas antes de pensar na estrutura do banco de dados, mode lamos a estrutura da aplicação com seus objetos, atributos, métodos e relacio namentos. Para os exemplos deste capítulo, elaboramos um modelo simplifica do com apenas 5 classes: Customer (cliente), Category (categoria), City (cida de), Contact (contato) e Skill (habilidade). As relações entre os objetos são as seguintes: Um objeto Customer (cliente) está associado a um objeto do tipo Category (categoria). Categoria pode ser: frequente, casual, varejista; Um objeto Customer (cliente) está associado a um objeto do tipo City (cidade); Um objeto Customer (cliente) possui uma composição com nenhum ou vários objetos do tipo Contact (contato). Isto significa que um objeto

10 36 Amostra do livro Adianti Framework para PHP contato (objeto parte) é parte de somente um objeto cliente (objeto todo); Um objeto Customer (cliente) possui uma agregação com nenhum ou vários objetos do tipo com Skill (habilidade). Isto significa que um ob jeto habilidade (objeto parte) pode ser parte de diferentes objetos cliente (objeto todo). Figura 13 Modelo de classes Obs: Você encontra maiores informações sobre orientação a objetos em PHP com o li vro PHP Programando com orientação a objetos, do mesmo autor Modelo relacional Um modelo de classes pode ser facilmente convertido em um modelo relacional por meio de técnicas de mapeamento objeto relacional (M.O.R.). A partir do modelo de classes exposto anteriormente, derivamos um modelo relacional contendo as tabelas para armazenar os objetos da aplicação. As seguintes con versões foram realizadas: O objeto Customer (cliente) está relacionado com Category (categoria) e com City (cidade) por meio de chaves estrangeiras (foreign key map ping); A relação de composição entre Customer (cliente) e Contact (contato) foi mapeada por meio de uma chave estrangeira (foreign key mapping), uma vez que em uma relação de composição, a parte é exclusiva do ob jeto todo; A relação de agregação entre Customer (cliente) e Skill (habilidade) foi mapeada pela tabela associativa (association table mapping) customer_skill já na agregação, a parte não é exclusiva do todo.

11 42 Amostra do livro Adianti Framework para PHP 3.3 Manipulação de objetos O padrão Active Record Todos os objetos da camada de modelo de uma aplicação Adianti Framework são objetos Active Record. Um Active Record é um dos padrões de projeto (de sign patterns) mais conhecidos e implementado em praticamente todas lingua gens de programação orientadas a objetos. Conforme Martin Fowler, um objeto Active Record é: An object that wraps a row in a database table or view, encapsula tes the database access, and adds domain logic on that data. Um Active Record é um objeto que representa uma linha de uma tabela (ou view) e encapsula ao mesmo tempo o acesso aos dados e a lógica de negócios daquela entidade. Para exemplificar, podemos pensar em um objeto Livro. Este objeto pode ter métodos como registraremprestimo() e registrardevolucao() que são métodos de negócio e também pode ter méto dos como store(), delete() e load() que são métodos de acesso aos dados (persistência). Geralmente os objetos Active Record não implementam estes métodos de aces so aos dados store(), delete() e load(), uma vez que nossos objetos teriam misturado em um mesmo local métodos de negócio e de persistência. Para re solver isso, os objetos Active Record generalizam estas operações, que são im plementadas por superclasses. No caso do Adianti Framework, os métodos de persistência são implementados pela classe TRecord. Assim, todos os objetos de domínio da aplicação devem ser subclasses de TRecord, herdando um conjunto de métodos de persistência. Figura 15 Um objeto Active Record

12 48 Amostra do livro Adianti Framework para PHP Alteração de objeto Já vimos como salvar um novo objeto na base de dados, como carregar um re gistro do banco de dados na forma de objeto, e agora vamos ver como alterar um registro na base de dados. O primeiro passo é carregar o objeto em memó ria. Podemos utilizar duas formas para carregar um objeto: a primeira é por meio de um parâmetro no método construtor; a segunda é utilizando o método load(). Este método retorna um objeto já instanciado a partir de seu ID. A partir do momento em que temos o objeto em memória (variável $customer), basta alterarmos seus atributos diretamente, definindo novos valores. Após alte rarmos os atributos, basta chamarmos o método store(). Mas como a classe TRecord sabe o que fazer com os dados? Como o objeto foi previamente carre gado, então ele possui um ID em memória. Neste caso, o framework sabe que deve proceder com uma alteração (UPDATE) e não uma criação (INSERT). Obs: Note que todas as operações estão dentro de uma transação. Na medida em que uma operação falhar, todas operações da transação são desfeitas. app/control/dbsamples/objectupdate.class.php <?php class ObjectUpdate extends TPage public function construct() parent:: construct(); try // abre uma transação TTransaction::open('samples'); // instancia o cliente $objeto = new Customer; // carrega o cliente 31 $customer= $objeto->load(31); // se encontrou if ($customer) $customer->phone = ' '; // muda o telefone $customer->store(); // armazena o objeto new TMessage('info', 'Objeto atualizado'); TTransaction::close(); // fecha a transação.?> catch (Exception $e) new TMessage('error', $e->getmessage());

13 Capítulo 3 - Modelos e persistência Amostra do livro Manipulação de coleções O padrão Repository O padrão Active Record nos permite trabalhar com um objeto que representa uma linha do banco de dados, ou seja, ele individualiza os registros fazendo com que cada um seja representado por um objeto em memória. E quando de sejamos trabalhar com uma coleção (um conjunto) de objetos? Podemos utili zar o padrão Repository. O padrão Repository é implementado por uma classe que disponibiliza uma interface para manipular coleções de objetos como repre sentado pela figura a seguir. Figura 16 Carregamento de objetos com repositório Como podemos ver na figura, a aplicação (programa) interage com uma classe que implementa o padrão Repository (TRepository). Esta classe disponibiliza métodos para carregar (load), contar (count) e excluir (delete) coleções de objetos. Antes de realizar a operação desejada, é necessário identificar o con junto de objetos a ser manipulado. A identificação do conjunto de objetos é rea lizada por um critério (objeto TCriteria). Um critério identifica regras de sele ção de objetos na base de dados. A classe TRepository realiza um acesso à base de dados e interage com os obje tos selecionados pelo critério. No exemplo demonstrado pela figura estamos carregando objetos (load). Neste caso, vários objetos do tipo Active Record são instanciados (conforme o critério) e retornados para a aplicação como vetor.

14 64 Amostra do livro Adianti Framework para PHP 3.5 Relacionamentos entre objetos Associação Associação é um relacionamento entre dois objetos onde um objeto possui uma referência para outro. Assim, o objeto que possui a referência pode solicitar ao objeto associado a realização de ações por meio da invocação de métodos. Den tro do modelo utilizado neste capítulo, a relação de associação ocorre entre ob jetos da classe Customer e Category e também entre Customer e City. Como a relação é direcional, um objeto da classe Customer possui uma referência para um objeto Category e também City. Figura 17 Exemplo de associação Quando mapeado para um banco de dados relacional, o relacionamento de as sociação geralmente é transformado em pares de chaves primárias e estrangei ras. Em memória temos um objeto Customer com uma referência para um obje to Category, então em banco de dados teremos um registro na tabela customer com uma chave estrangeira (category_id) para a tabela category. Figura 18 Uma associação mapeada para o modelo relacional

15 4 COMPONENTES DE APRESENTAÇÃO CAPÍTULO 4 Componentes de apresentação No último capítulo vimos como manipular objetos. Em alguns momen tos, criamos páginas para exibir resultados (subclasses de TPage), mas como o foco do capítulo era persistência, a apresentação ficou em segun do plano. O foco deste capítulo é explorar os componentes de apresenta ção do framework. Portanto, vamos explorar tabelas, painéis e notebo oks; componentes para criação de formulários e datagrids; diálogo de mensagens, dentre outros. 4.1 Conceitos básicos Controlador de páginas Qualquer elemento a ser apresentado pelo Adianti Framework, seja Web ou desktop, deve estar contido em uma página. Para criarmos uma nova página, devemos criar uma classe. Assim, cada página a ser exibida no framework será uma classe. No framework existem basicamente dois controladores de páginas: TPage e TWindow. Assim, qualquer página deve ser subclasse de um desses dois controladores padrão. Enquanto subclasses de TPage são exibidas dentro do layout do sistema, subclasses de TWindow são exibidas em uma janela sobre o sistema. A seguir temos o exemplo de uma página simples contendo apenas uma mensagem de Hello World. No método construtor da página acrescenta mos seu conteúdo, por meio do método add(). Aqui estamos utilizando o com ponente TLabel, que representa um rótulo de texto. Neste capítulo, abordare mos outros componentes visuais que podem ser utilizados.

16 Capítulo 4 - Componentes de apresentação Amostra do livro 79 app/control/presentation/helloworld.class.php <?php class HelloWorld extends TPage public function construct() parent:: construct(); // é fundamental executar o construtor da classe pai parent::add(new TLabel('Hello World'));?> Para exibir um controlador de páginas na Web, podemos editar o layout da aplicação e acrescentar um link para index.php, identificando a classe que gos taríamos que o framework exibisse por meio do parâmetro class: <a href="index.php?class=helloworld" generator="adianti"> Hello World</a> Ou também podemos simplesmente digitar no navegador: O resultado da execução pode ser visto na figura a seguir. Figura 23 Resultado da execução do Hello World Já no ambiente desktop (Gtk), para exibirmos uma página, basta executarmos o método loadpage() da classe TApplication, da seguinte forma: TApplication::loadPage('HelloWorld'); Também podemos utilizar o controlador de páginas TWindow para criar páginas. O conteúdo das subclasses de TWindow é exibido em janelas sobre o sistema. A seguir temos uma página subclasse de TWindow e o resultado de sua execução. app/control/presentation/helloworldwindow.class.php <?php class HelloWorldWindow extends TWindow public function construct() parent:: construct(); parent::add(new TLabel('Hello World'));

17 88 Amostra do livro Adianti Framework para PHP Na próxima figura, podemos ver o resultado da execução deste programa. Figura 28 Painéis Notebook Por mais versáteis que sejam os containers TTable e TPanel, às vezes estes não são suficientes para comportar a quantidade de componentes que precisamos apresentar em tela. Nestes casos, é necessário recorrermos a containers que nos ofereçam maiores possibilidades quanto a ocupação de espaços. Um desses con tainers é o notebook. Um notebook divide um espaço em abas, permitindo mul tiplicar o espaço disponível, exibindo apenas uma aba de cada vez. O componente notebook existe em vários frameworks, mas no Adianti Fra mework ele é especial pois permite nos compor recursivamente interfaces. As sim, podemos colocar notebook dentro de notebook e assim por diante. Tam bém podemos colocar um painel ou uma tabela dentro de um notebook e este notebook dentro de outro notebook sucessivamente. No Adianti Framework, um notebook é representado pelo container TNotebook. Um TNotebook recebe em seu método construtor as dimensões que ocupará em tela. Um notebook possui o método appendpage(), responsável por acrescentar uma aba ao notebook, que recebe como primeiro parâmetro o título da aba e como segundo parâmetro um objeto representando o conteúdo da aba. Neste exemplo, criamos uma página contendo um notebook com duas abas. A primeira aba contém o objeto $page1, que é uma tabela com várias linhas com objetos como TLabel (rótulos de texto) e TEntry (caixa de texto). Já a segunda aba contém também outro notebook ($subnotebook) em seu interior.

18 Capítulo 4 - Componentes de apresentação Amostra do livro 97 app/control/presentation/dialogs/dialoginformationview.class.php <?php class DialogInformationView extends TPage public function construct() parent:: construct(); new TMessage('info', 'Mensagem informativa');?> Na próxima figura, podemos ver o resultado da execução deste programa. Figura 34 Mensagem de informação Erro Outro tipo de mensagem comum a ser apresentada ao usuário é a mensagem de erros. No Adianti Framework a mesma classe utilizada para exibir mensa gens informativas (TMessage) também é utilizada para exibir mensagens de erro. A única modificação que precisamos fazer é alterar o primeiro parâmetro de 'info' para 'error'. Este parâmetro causará a mudança da imagem a ser exibida juntamente a mensagem indicada. Obs: Ao criar uma mensagem pode ser passado um terceiro parâmetro que indica a ação (objeto TAction) a ser executada quando o usuário clicar no OK do diálogo. app/control/presentation/dialogs/dialogerrorview.class.php <?php class DialogErrorView extends TPage public function construct() parent:: construct(); new TMessage('error', 'Mensagem de erro');?>

19 102 Amostra do livro Adianti Framework para PHP Formulários rápidos O Adianti Framework apresenta um bom nível de flexibilidade na montagem de formulários, o que será visto nos tópicos seguintes. Esta flexibilidade nos permite posicionar os elementos de um formulário com liberdade. Entretanto, esta flexibilidade nos faz escrever mais linhas de código. Muitas vezes precisa mos somente de um formulário simples com os campos organizados um abaixo do outro. Neste caso, podemos utilizar um componente para construção de for mulários rápidos, o TQuickForm. Para melhor apresentação gráfica, um formulário pode ser empacotado den tro de outro componente, como um notebook ou um frame. Neste exemplo, cri aremos um formulário rápido (TQuickForm) e simplesmente definiremos sua classe CSS (tform). É importante lembrar que os objetos do Adianti Framework podem ser colocados dentro de diferentes containers e estes serem combinados em outros containers. Este também será o primeiro exemplo ao longo do livro no qual poderemos abordar os componentes de entrada de dados. O framework possui vários com ponentes (caixa de entrada de texto, datas, combos, rádios, dentre outros) que podem ser utilizados dentro de um formulário. Neste exemplo veremos a utili zação de alguns destes. Obs: A explicação do exemplo será dividida em partes, sendo uma para cada método. Conforme pode ser visto no código fonte a seguir, o formulário (FormQuickView) inicia pela montagem da interface, o que ocorre em seu método construtor. No método construtor, criamos um formulário (TQuickForm) e também defini remos sua classe CSS, bem como seu título por meio do método setformtitle(). Em seguida, iniciamos a criação dos elementos do formulário. Cada elemento do formulário é representado por uma classe: caixa de entrada de texto (TEntry), seletor de datas (TDate), seletor de cores (TColor), lista de elementos (TCombo), caixa de texto com várias linhas (TText), dentre outros. No momento de instanciar o objeto, precisamos identificar um nome como pa râmetro. É por meio deste nome ('id', 'description') que poderemos obter posteriormente os valores preenchidos no formulário. Após instanciarmos os elementos do formulário, preenchemos o elemento com bo (TCombo) com um vetor de opções por meio do método additems(). Este método recebe um vetor indexado e será melhor explicado posteriormente.

20 Capítulo 4 - Componentes de apresentação Figura 38 Amostra do livro 105 Formulário rápido Formulários personalizados No exemplo anterior vimos como construir um formulário rápido com alguns componentes dispostos um abaixo do outro. Entretanto, em várias situações precisamos de maior flexibilidade na construção de formulários, e isso será de monstrado neste exemplo. No exemplo anterior utilizamos a classe TQuickForm para criar formulários e o método addquickfield() para acrescentar elementos ao formulário. Neste exemplo, utilizaremos a classe TForm. Esta classe não pos sui um método específico para adicionar elementos ao formulário. Para adicio nar elementos ao formulário, devemos empacotá los em um container (TTable, TPanel) e então acrescentar este container ao formulário (TForm). O formulário (TForm) atua como um agrupador lógico de campos. Neste exemplo, criaremos um formulário e utilizaremos uma tabela (TTable) para dispor os elementos dentro do formulário e um notebook (TNotebook) ao redor do formulário, para delimitar melhor seu espaço. O exemplo a seguir, inicia pela criação dos containers: notebook (TNotebook), formulário (TForm) e tabela (TTable). Após, a tabela é inserida no formulário, e este no notebook. Em seguida, vários elementos de formulário são criados como: caixa de entrada de texto (TEntry), caixa para digitação de senha (TPassword), seletor de datas (TDate) e caixa de texto com várias linhas (TText). A seguir, uma tabela com os componentes que podem ser utilizados dentro de formulários para obtenção de dados.

21 Capítulo 4 - Componentes de apresentação Amostra do livro 129 campo anterior. O campo response_b depende do conteúdo de combo_change, que é dinâmico. Neste caso, para manter o formulário preenchido mesmo em campos dinâmicos, devemos utilizar o método senddata() para enviar os dados do formulário por meio de uma requisição Ajax mesmo após a postagem. Esta técnica permite que o evento de troca da combo combo_change seja dis parado novamente, sendo que logo em seguida o campo response_b também tem seu valor definido de maneira síncrona. Os demais campos do formulário, que não possuem tal dinamicidade são preenchidos pelo método setdata(). public function onview() $data = $this->form->getdata(); // lê os dados do formulário // monta um objeto para enviar dados após o post $obj = new StdClass; $obj->combo_change = $data->combo_change; // dispara a ação de mudança $obj->response_b = $data->response_b; // atualiza o valor após mudança // envia dados dinamicamente TForm::sendData('form_interaction', $obj); $this->form->setdata($data); // mantém o formulário preenchido?> new TMessage('info', str_replace(',', ',<br> ', json_encode($data))); Na próxima figura, podemos ver o resultado da execução deste programa. Figura 46 Interações dinâmicas Habilitando e desabilitando campos No exemplo anterior, pudemos ver como configurar interações dinâmicas em formulários, por meio dos métodos setexitaction(), que permite definir uma ação para saída de um campo e setchangeaction() que permite definir uma ação para a troca de valores. No exemplo anterior, alteramos o valor de um campo e recarregamos uma combo.

22 Capítulo 4 - Componentes de apresentação Amostra do livro Datagrids Ao longo do livro, vimos como organizar o visual da aplicação por meio de con tainers, como interagir com o usuário por meio de diálogos e também como co letar informações por meio de formulários. O próximo passo está em apresentar as informações ao usuário no formato de listagens, permitindo que o mesmo possa interagir sobre os dados tomando ações. No Adianti Framework, as infor mações são apresentadas ao usuário por meio de datagrids. Uma datagrid ge ralmente apresenta uma coleção de Active Records vindos da base de dados. Entretanto, antes de interagirmos com a base de dados, vamos aprender os conceitos básicos sobre datagrids trabalhando com dados estáticos. Trabalhare mos integrando componentes visuais e banco de dados no próximo capítulo Datagrids rápidas Para começarmos a trabalhar com datagrids, nada melhor do que uma aborda gem rápida. Existem duas maneiras de construir datagrids no Adianti Fra mework: datagrids rápidas e datagrids personalizadas. Datagrids rápidas pro porcionam uma forma rápida e ágil para construir datagrids com poucas linhas de código, de maneira similar aos formulários rápidos (TQuickForm). O objetivo deste exemplo é demonstrar o funcionamento das datagrids rápidas (TQuickGrid). Para tal, construiremos uma página com uma datagrid exibindo dados estáticos. Esta datagrid terá dois botões de ação. Neste exemplo veremos também como conectar um botão de ação de uma datagrid a um método. Conforme pode ser visto no código fonte a seguir, este exemplo inicia com a criação de uma datagrid rápida (TQuickGrid). Após, são acrescentadas as colu nas da datagrid por meio do método addquickcolumn(), com os parâmetros: Título da coluna, nome do atributo a ser exibido, alinhamento e largura em pi xels. As datagrids foram concebidas para exibir objetos, sendo um em cada li nha. Assim, o segundo parâmetro representa o nome atributo que será exibido naquela coluna. Obs: Normalmente datagrids são construídas com a intenção de exibir objetos Active Record. Nos exemplos dessa seção utilizaremos objetos simples (StdClass) por moti vos didáticos. No próximo capítulo, construiremos formulários e listagens integrados aos Active Record.

23 158 Amostra do livro Adianti Framework para PHP // cria uma string com as $message = 'Check 1 : '. $message.= 'Check 2 : '. $message.= 'Check 3 : '. $message.= 'Check 4 : '.?> opções selecionadas $data->check1. '<br>'; $data->check2. '<br>'; $data->check3. '<br>'; $data->check4. '<br>'; // exibe a mensagem new TMessage('info', $message); function show() $this->onreload(); parent::show(); Na figura a seguir, podemos conferir o resultado da execução deste programa. Figura 58 Datagrids com checagem Datagrids com campos de entrada Neste exemplo, será demonstrado como criar uma datagrid com campos de en trada de dados (TEntry). Já vimos como criar uma datagrid com checkbuttons e neste caso, o procedimento é parecido. No método construtor, a datagrid (TQuickGrid) é construída com quatro colu nas (Code, Name, Address, e Phone). É importante notar que para que o envio de dados funcione, a datagrid precisa estar dentro de um formulário (TForm). Até esse momento, o único elemento do formulário é o próprio botão (TButton), que está conectado ao método onsave(). O método addfield() é usado para acrescentar ao formulário mais campos para serem manipulados. app/control/presentation/datagrid/datagridinputview.class.php <?php class DatagridInputView extends TPage private $form; private $datagrid;

24 162 Amostra do livro Adianti Framework para PHP // cria as $code $name $address $telephone colunas = new TDataGridColumn('code', = new TDataGridColumn('name', = new TDataGridColumn('address', = new TDataGridColumn('fone', 'Code', 'Name', 'Address', 'Phone', 'right', 50); 'left', 180); 'left', 180); 'left', 120); $this->datagrid->addcolumn($code); $this->datagrid->addcolumn($name); $this->datagrid->addcolumn($address); $this->datagrid->addcolumn($telephone); // cria as ações $action1 = new TDataGridAction(array($this, 'onview')); $action1->setlabel('view name'); $action1->setimage('bs:search blue'); $action1->setfield('name'); $action2 = new TDataGridAction(array($this, 'ondelete')); $action2->setlabel('try to delete'); $action2->setimage('bs:remove red'); $action2->setfield('code'); $action3 = new TDataGridAction(array($this, 'onview')); $action3->setlabel('view address'); $action3->setimage('bs:hand-right green'); $action3->setfield('address'); // cria o agrupamento de ações $action_group = new TDataGridActionGroup('Actions', 'bs:th'); // adiciona as ações ao agrupamento $action_group->addheader('available Options'); $action_group->addaction($action1); $action_group->addaction($action2); $action_group->addseparator(); $action_group->addheader('another Options'); $action_group->addaction($action3); $this->datagrid->addactiongroup($action_group); // adiciona o agrupamento $this->datagrid->createmodel(); // cria o modelo parent::add($this->datagrid); // demais métodos... Na próxima figura, podemos ver o resultado da execução deste programa. Figura 60 Agrupamento de ações em datagrids

25 Capítulo 4 - Componentes de apresentação Amostra do livro 173 public function onconfirm() try $this->form->validate(); $data = $this->form->getdata(); $this->form->setdata($data); $form1_data = TSession::getValue('form_step1_data'); $data->password = $form1_data->password; // agrega a senha new TMessage('info', str_replace(',', '<br>', json_encode($data)));?> catch (Exception $e) new TMessage('error', $e->getmessage()); Na próxima figura, podemos ver o resultado da execução deste programa. Figura 64 Passo a passo entre formulários diferentes 4.7 Relatórios A utilização de datagrids oferece um meio bastante utilizado para listagem e vi sualização das informações já registradas pelo sistema. Entretanto, as datagrids não substituem relatórios. Os usuários frequentemente desejam imprimir docu mentos contendo quantidades maiores de dados a partir do sistema. Neste caso, precisamos usar formatos mais adequados para a impressão. O Adianti Fra mework disponibiliza um conjunto de classes para geração de relatórios em ta belas nos formatos: HTML, PDF e RTF. O ponto positivo na utilização desta bi

26 174 Amostra do livro Adianti Framework para PHP blioteca é que você escreve o relatório somente uma vez, e pode exportar para os três formatos sem a menor necessidade de nova programação. Obs: As classes para geração de relatórios vistas aqui foram propostas pela primeira vez no livro Criando relatórios com PHP, do mesmo autor. Para demonstrar a utilização das classes para geração de relatórios, construire mos um formulário para seleção de clientes. Este formulário permite filtrar por partes do nome, cidade e categoria. O usuário poderá preencher um ou mais fil tros neste formulário. O programa deverá buscar todos os clientes na base de dados pelos filtros selecionados. Para tal, utilizaremos coleções, como visto no capítulo 3. A partir da coleção de clientes carregada em memória, procedere mos com a escrita do relatório. O relatório poderá ser extraído em um dos três formatos: HTML, PDF ou RTF conforme pode ser visto na figura a seguir. Na próxima figura, podemos ver o formulário de seleção de clientes. Figura 65 Tela de filtragem do relatório O programa inicia com a criação do formulário (TForm) e de uma tabela que irá dentro do formulário para conter os campos (TTable). Logo em seguida, são criados os campos do formulário e adicionadas algumas opções (html, pdf, rtf) no rádio button, bem como definidas algumas características dos campos como o tamanho. Este formulário também possui um botão de busca de registros de cidades (TDBSeekButton). Após criarmos os objetos, adicionamos os vários cam pos de filtragem à tabela que estará dentro do formulário. Ao final do método construtor, um botão de ação (TButton) é criado para acionar o método ongenerate(), responsável pela geração do relatório. Obs: Algumas partes do código foram cortadas durante a edição. Você encontra os ar quivos completos ao realizar o download da aplicação tutor.

27 182 Amostra do livro Adianti Framework para PHP Na figura a seguir, podemos ver o gráfico gerado. Figura 69 Gráfico de pizza 4.9 Exemplos específicos para web Nessa seção veremos como criar formas de apresentação mais livres para as pá ginas do framework, integrando seus componentes com outras bibliotecas. Para tal, veremos: como integrar uma página com plugins jquery; como utilizar tem plates HTML para estruturar o visual de uma página; e também como criar componentes Integrando com jquery Por mais que um framework ofereça componentes, jamais vai suprir todas as necessidades de seus usuários. Portanto, é importante que um framework per mita integrações com outras tecnologias, sendo extensível. Pensando nisso, este exemplo demonstrará uma integração com o plugin galleria da biblioteca jquery. Este plugin permite criarmos galerias de imagens. Como o foco da bibli oteca jquery é a web, criaremos um pequeno controle em nossa aplicação para que uma exceção seja lançada caso o usuário tente abrir este exemplo no ambi ente desktop. O Adianti Framework é centrado no conceito de páginas (objetos TPage). As sim, dentro de uma página costumamos acrescentar outros objetos (TTable, TPanel, TNotebook). Neste caso, em que temos de colocar dentro de uma pági na um outro elemento HTML e possivelmente referenciar um script Javascript, podemos utilizar um objeto coringa dentro do framework, chamado TElement.

28 5 ORGANIZAÇÃO E CONTROLE CAPÍTULO 5 Organização e controle Chegamos em um ponto do livro onde já aprendemos a manipular o banco de dados, a criar interfaces com diversos componentes, mas ainda não integramos os dois, ou seja, ainda não criamos interfaces que mani pulam registros da base de dados. Pois o objetivo deste capítulo é justa mente abordar a criação de interfaces com formulários, listagens, buscas, edições para registros na base de dados por meio de padrões como Acti ve Record e Repository. 5.1 Controladores padrão Vamos começar a abordar a criação de formulários e datagrids para manipula ção de registros de forma ágil. Para tal, o Adianti Framework disponibiliza con troladores padrão. Mas o que é um controlador padrão? Um controlador pa drão é uma classe que pode ser utilizada como base para criação de páginas como formulários e datagrids que já contém uma série de funcionalidades, faci litando muito a vida do desenvolvedor. Com um controlador padrão é possível criar um cadastro completo com poucas linhas de código Controlador de formulário Para começar, vamos criar um formulário para edição de registros de cidades (City) utilizando o controlador padrão de formulários: TStandardForm. Este controlador permite criar um formulário de cadastro com poucas linhas de có digo, uma vez que já contém definidos de maneira genérica, métodos para sal vamento e edição de registros. Na próxima figura, podemos ver o resultado da execução deste exemplo.

29 202 Amostra do livro Adianti Framework para PHP grids, como as opções de busca, carregamento de registros e exclusão. Na próxi ma figura, podemos ver o resultado da execução deste exemplo. Figura 78 Controlador padrão de listagem Este exemplo será formado basicamente por um formulário e uma datagrid. A função do formulário é buscar registros de cidade (City) por meio de seu nome. Este formulário também terá um botão Novo, cuja função é direcionar para a página de cadastro (construída no último exemplo). Já a datagrid terá botões para edição e exclusão, bem como uma paginação de registros. Para utilizar o controlador padrão de datagrids, basta criarmos uma página subclasse de TStandardList. A partir de então, precisamos executar alguns mé todos padrão como: setdatabase(), para definir a base de dados utilizada; setactiverecord(), para definir a classe de Active Record manipulada; e setfilterfield(), para definir qual campo da datagrid será utilizado para filtragem da mesma. Obs: Este exemplo usa sessões, que são manipuladas pela classe TSession. Sessões permitem reter valores mesmo através de constantes trocas de página dentro do siste ma. Para utilizar sessões, sempre devemos instanciar um objeto TSession no início da página. A partir de então, para ler valores da seção, basta utilizar o método getvalue('variavel'), enquanto que para atribuir valores para a sessão, basta utilizar o método setvalue('variavel', 'valor').

30 Capítulo 5 - Organização e controle Amostra do livro 205 // cria o navegador de páginas $this->pagenavigation = new TPageNavigation; $this->pagenavigation->setaction(new TAction(array($this, 'onreload'))); $this->pagenavigation->setwidth($this->datagrid->getwidth()); // cria um container ao redor dos elementos $table = new TTable; $table->addrow()->addcell($this->form); $table->addrow()->addcell($this->datagrid); $table->addrow()->addcell($this->pagenavigation);?> parent::add($table); // acrescenta a tabela na página Controlador de formulário com datagrid Já vimos como construir formulários e datagrids individuais com integração en tre ambos de maneira ágil. Estes recursos já nos abrem muitas possibilidades. Entretanto em alguns casos, o cadastro que manipularemos é tão pequeno que não necessita de duas telas separadas (uma para formulário de cadastro e outra para listagem com busca) para realizar a manutenção dos registros. Quando sa bemos que uma determinada tabela não passará de 20 ou 30 registros em toda sua existência, podemos ter toda a edição em uma mesma tela. A ideia básica de um controlador de formulário com datagrid é ter uma tela onde possamos ao mesmo tempo listar e editar os registros. Essa tela dispensa recursos como busca e paginação, uma vez que terá uma quantidade limitada de registros. Na próxima figura, podemos ver o resultado da execução deste exemplo. Figura 79 Controlador padrão de formulário com datagrid A ideia deste exemplo é termos uma página com um formulário e uma data grid. O formulário será utilizado para cadastrar novos registros e a datagrid para exibir os registros já cadastrados. O formulário terá botões como Salvar,

31 212 Amostra do livro Adianti Framework para PHP function onedit($param) try if (isset($param['key'])) // verifica se o parametro foi informado $key=$param['key']; // obtém a chave do registro TTransaction::open('samples'); // abre a transação $object = new City($key); // instancia o Active Record $this->form->setdata($object); // preenche o formulário TTransaction::close(); // fecha a transação else $this->form->clear(); // limpa o formulário catch (Exception $e) new TMessage('error', '<b>error</b> '. $e->getmessage()); TTransaction::rollback(); // desfaz operações Obs: Todos os métodos de manipulação de base de dados, como onsave() e onedit(), devem realizar as operações dentro de um bloco de controle de exceções try/catch, pois as classes de manipulação da base de dados lançam exceções em caso de erros Controlador de datagrid Agora que entendemos como construir um formulário completo, sem controla dores padrão do sistema, faremos o mesmo com uma datagrid. O objetivo deste exemplo é construir uma datagrid completa, com busca, edição e exclusão de registros de cidades (City) com os controladores totalmente programados ma nualmente. Na próxima figura, vemos o resultado da execução deste exemplo. Figura 81 Controlador manual de datagrid

32 Capítulo 5 - Organização e controle Figura 83 Amostra do livro 225 Datagrid de clientes Conforme pode ser visto no código fonte a seguir, iniciamos a criação da página pelo formulário (TForm). Este formulário terá dois campos de buscas (name e city_name) e três ações (TButton), que são: Busca, que utilizará os campos nome do cliente ou nome da cidade para filtrar a datagrid, por meio do método onsearch(); Novo, que direcionará o usuário para o formulário de cadastro, representado pela classe CustomerFormView, que será criada no próximo exem plo; e CSV, que permite exportar os dados da datagrid neste formato, por meio da execução do método onexportcsv(). Após a criação do formulário, é criada a datagrid (TQuickGrid). A datagrid terá quatro colunas adicionadas por meio do método addquickcolumn(), que são: id, name, city->name e address, sendo que o atributo city->name é retornado por meio da relação de associação (método get_city()) na classe Customer. A datagrid terá duas ações adicionadas por meio do método addquickaction(), que são: Editar, que carrega o objeto selecionado na datagrid para edição no seu respectivo formulário representado pela classe CustomerFormView; e Dele tar, que está conectada ao método ondelete(), que por sua vez irá questionar o usuário se o mesmo deseja realmente excluir o registro. A datagrid poderá ser ordenada pelas colunas id, name ou city->name, o que é definido no momento em que executamos o método addquickcolumn(), indi cando que ao clicar no título da coluna, será executado o método onreload() passando id, name ou city->name como parâmetro order. Note que não existe

33 234 Amostra do livro Adianti Framework para PHP Um formulário para manipulação de clientes deve reunir todos esses conceitos (associações, composições e agregações). Para tornar isso possível, faremos um formulário com abas, usando o notebook (TNotebook). Esse componente nos permitirá colocar um grupo de informações diferentes em cada aba. Na primei ra aba, teremos os dados básicos do cliente, conforme viso na figura a seguir. Figura 85 Primeira aba do formulário de clientes A segunda aba do formulário, apresentará um campo repetitivo (TMultiField). Este campo permitirá que possamos acrescentar uma série de contatos (objetos Contact) a um cliente, tendo como atributos tipo (type) e valor (value). Estes dados são específicos de um cliente, conforme o conceito de composição. Figura 86 Segunda aba do formulário de clientes

34 Capítulo 5 - Organização e controle Figura 88 Amostra do livro 241 Janela de busca de cidades sobre o formulário de clientes A janela de busca de cidades, conforme pode ser vista no código fonte a seguir, é um controlador de páginas como tantos outros que já construímos. A diferen ça mais importante está no fato de que a classe é filha de TWindow e não de TPage. Ao ser subclasse de TWindow, um controlador de páginas é exibido em uma nova janela pelo Adianti Framework. O controlador de páginas inicia com a criação do formulário de busca de cida des (TQuickForm). Este formulário terá um campo (name), adicionado pelo mé todo addquickfield() e a ação de buscas onsearch(), adicionada pelo método addquickaction(). Sempre que o usuário clicar sobre o botão de ação, a data grid será filtrada com o termo digitado no campo name. Após criar o formulário de buscas, é criada uma datagrid (TQuickGrid) utiliza da para exibir os registros de cidade. Esta datagrid terá duas colunas: id e name, adicionadas pelo método addquickcolumn() e uma ação adicionada pelo méto do addquickaction(). Esta ação está conectada ao método onselect() e será responsável por retornar o registro preenchido para o formulário pai. Ao final do método construtor, os componentes são empacotados em uma tabe la (TTable) e esta, adicionada à página. app/control/organization/complexviews/cityseek.class.php <?php class CitySeek extends TWindow private $form; private $datagrid; private $pagenavigation;

35 248 Amostra do livro Adianti Framework para PHP Formulário de Produtos No exemplo em que construímos o formulário de clientes (CustomerFormView), vimos como construir um formulário complexo, com várias abas, e com méto dos como o onsave() e onedit() definidos pelo programador, ou seja, customi zados conforme a necessidade. Também vimos exemplos mais simples, como o cadastro de cidades (StandardFormView), em que somente definimos os campos do formulário, sendo que o comportamento havia sido herdado da classe TStandardForm, que provê um comportamento básico para manipulação de formulários. Neste exemplo, construiremos um formulário para manipulação de produtos, tentando aproveitar ao máximo o que nos oferece a classe básica (TStandardForm), e ao mesmo tempo customizaremos o comportamento do método onsave() por meio de uma sobrecarga de método, onde manteremos o comporta mento padrão do método, enquanto que adicionaremos algumas operações. O cadastro de produtos possui um campo que é a foto do produto. Quando o usuário realizar um upload de foto durante a edição do produto, precisaremos copiar a foto para o local definitivo. Para tal, o método onsave() será customi zado por que além de executar o comportamento padrão de um método onsave(), que é de armazenar os campos do formulário no banco de dados, precisa remos também copiar a foto para o diretório de destino. Na imagem a seguir temos a tela do cadastro de produtos com campos para Id, descrição, estoque, preço de venda, unidade e foto do produto. Figura 90 Formulário de cadastro de produtos

36 6 ESTUDOS DE CASO CAPÍTULO 6 Estudos de caso Após cinco capítulos estudando o framework, já nos sentimos prepara dos para criar nossas primeiras aplicações, uma vez que já vimos como manipular entidades da base de dados, criar uma interface orientada a objetos, bem como controlar o fluxo de execução da aplicação. Entretan to, é nesse momento que alguns aspectos vêm à tona como: login, con trole de permissões, internacionalização, dentre outros. Estes aspectos variam de aplicação para aplicação e, para ensinar, nada melhor do que mostrar exemplos reais. Dessa forma, conheceremos aplicações reais de senvolvidas com o Adianti Framework e estudaremos como elas resolve ram essas questões. 6.1 Aplicação Library A primeira aplicação que vamos estudar, chama se Library (biblioteca). O obje tivo desta aplicação é fornecer os controles mínimos que uma biblioteca precisa para funcionar, sempre visando a demonstração do framework. Esta aplicação não tem como objetivo ser um sistema completo para gerenciamento de biblio tecas, uma vez que já existem inúmeros softwares com essa finalidade. A aplicação Library fornece algumas funcionalidades como a catalogação de li vros, a classificação de livros, cadastro de leitores, autores, assuntos e editoras, empréstimo e devolução de livros, relatórios de livros, leitores e empréstimos, cadastro de usuários e de permissões. A aplicação Library merece destaque pois ela possui diferentes perfis de usuári os, sendo que cada perfil possui acesso a um grupo de funcionalidades do siste ma. Poderemos ver melhor as funcionalidades acessadas por cada ator no dia

37 266 Amostra do livro Adianti Framework para PHP Figura 95 Diagrama de classes da biblioteca Modelo relacional O modelo relacional, que pode ser visto na figura após a tabela a seguir, pode ser derivado a partir do modelo de classes persistentes por meio de técnicas de mapeamento objeto relacional. No modelo relacional do sistema Library, temos as tabelas a seguir. Juntamente a cada tabela, temos a explicação de qual Active Record ela representa e também como foi realizado o mapeamento. author: Armazena um Active Record do tipo Author; subject: Armazena um Active Record do tipo Subject; publisher: Armazena um Active Record do tipo Publisher; collection: Armazena um Active Record do tipo Collection; classification: Armazena um Active Record do tipo Classification; book: Armazena um Active Record Book. A associação de Book com Publisher foi mapeada por meio da chave estrangeira publisher_id. Sua associação com Collection foi mapeada por meio da chave estrangeira collection_id. Sua associação com Classification foi mapeada por meio da chave estrangeira classification_id. Sua agregação com Author foi mapeada por meio da tabela associativa book_author. Sua agregação com Subject foi mapeada por meio da tabela associativa book_subject;

38 276 Amostra do livro Adianti Framework para PHP Controle de permissões Ter um template separado para cada perfil de usuário não impede que um usuário tente acessar um controlador de página de outro usuário. Na web, por exemplo, um operador poderia tentar acessar o cadastro de livros digitando seu endereço na URL: Para impedir que acessos desse gênero ocorram, devemos realizar um controle de permissões em cada controlador de página. No exemplo a seguir, temos o cadastro de livros, que pode ser acessado somente pelo perfil da bibliotecária. Dessa forma, em seu método construtor verificamos inicialmente se o usuário está logado. Caso não esteja, uma exceção é lançada e a mensagem de erro é exibida para o usuário. Após a verificação de login, é aberta uma transação com a base de dados para verificar o perfil do usuário logado na sessão. O método newfromlogin() é utilizado para carregar o objeto User. Então é realizada sim plesmente uma comparação do perfil do usuário (role->mnemonic). Caso o per fil não seja da bibliotecária (LIBRARIAN), então uma nova exceção é lançada. Caso passe pelas verificações, então o formulário é construído e o programa se gue sua execução. app/control/bookform.class.php <?php class BookForm extends TPage private $form; // formulário function construct() parent:: construct(); // verifica se está logado if (TSession::getValue('logged')!== TRUE) throw new Exception(_t('Not logged')); // verifica se o perfil pode acessar a página TTransaction::open('library'); if (User::newFromLogin(TSession::getValue('login'))->role->mnemonic!== 'LIBRARIAN') throw new Exception(_t('Permission denied')); TTransaction::close(); // cria o formulário... $this->form = new TForm('form_Book');

39 Capítulo 6 - Estudos de caso Amostra do livro Template ERP Nas primeiras versões do framework, não havia uma aplicação que demonstras se de maneira completa como implementar o controle de permissões. Então, primeiramente foi criada a aplicação Library, que além de demonstrar o uso de vários componentes do framework, também demonstrava como tratar do con trole de acesso por meio de diferentes templates. A aplicação Library cumpre bem seu papel. Entretanto em grandes sistemas, a criação de diferentes templates para suportar diferentes perfis de usuários aca ba sendo uma atividade repetitiva e sujeita a falhas. Em situações onde temos muitos grupos de usuários e as permissões mudam constantemente, temos de dar manutenção à diferentes arquivos. Além disso, é inviável dar permissões ex clusivas a um único usuário, pois a permissão é global para o grupo. Pensando nessas situações, foi criado um template para novas aplicações, cha mado Template ERP. O objetivo do Template ERP, é entregar alguns recursos relativos ao controle de acesso, necessários à grandes sistemas de gestão. Assim, o Template ERP é um esqueleto de aplicação, que já conta com controle de per missões embutido, por meio de recursos como: cadastro de usuários, de grupos, e de programas. Neste template, a montagem dos menus de opção é dinâmica, conforme as permissões previamente cadastradas no usuário ou no grupo. Obs: O Template ERP pode ser baixado em template Estrutura O Template ERP é uma aplicação já pronta que utiliza o Adianti Framework. Além do próprio framework, o template entrega o seguinte conteúdo, além de versões modificadas dos arquivos index.php e engine.php. Tabela 10. Conteúdos do Template ERP app config Arquivo permission.ini, que indica a localização da base de dados de permissões. control Cadastros de usuários, grupos, e programas. database Arquivo permission.db, base de dados pronta de usuários, grupos e programas. model Classes de modelo para usuários, grupos e programas, bem como suas ligações (agregações). templates Templates da aplicação (tela de login, etc).

40 Capítulo 6 - Estudos de caso Amostra do livro Tela de Login Na medida em que o usuário acessar o sistema pela primeira vez, terá acesso ao formulário de login. Basicamente o formulário de login é um formulário co mum com dois campos: usuário e senha. Figura 106 Formulário de login Neste caso, vamos suprimir o método construtor, onde a interface é construída, e nos concentrar o método onlogin(), que é executado sempre que o usuário clicar no botão Login. Este método inicialmente autenticará o usuário por meio do método SystemUser::autenticate(). Este método recebe o login e a senha e retorna o usuário (SystemUser) correspondente com aquele login caso a senha seja igual à do cadastro. Caso contrário, uma exceção é lançada. Caso o usuário seja autenticado, são obtidos os programas que o mesmo tem acesso por meio do método getprograms(). Estes programas são armazenados em uma variável de sessão, por meio do método TSession::setValue(). Por fim, caso o usuário tenha uma página de entrada (Front page) cadastrada, ele será direcionado para esta página por meio do método TApplication::gotoPage(), caso contrário, será direcionado para uma página vazia (EmptyPage). app/control/admin/loginform.class.php <?php class LoginForm extends TPage protected $form; // form function onlogin() try TTransaction::open('permission'); $data = $this->form->getdata('stdclass'); $this->form->validate(); // autentica o usuário $user = SystemUser::autenticate( $data->login, $data->password ); if ($user) // se autenticou $programs = $user->getprograms(); // busca os programas que tem acesso $programs['loginform'] = TRUE;

41 300 Amostra do livro Adianti Framework para PHP Telas de administração O Template ERP já acompanha uma série de cadastros que permitem definir as permissões da aplicação. Para acessá los, basta realizar login no sistema com o usuário admin, cuja senha já foi apontada anteriormente. O primeiro cadastro é o de programas. Nesse cadastro, deveremos registrar cada classe (página) criada para o sistema, dando um nome, e apontando sua classe. As classes de administração (iniciam com System*), já estão cadastradas. Figura 107 Cadastro de programas Outro cadastro administrativo é o de grupos de usuários, que pode ser visto na figura a seguir. Para cada grupo que cadastrarmos, será possível relacionar uma série de programas, por meio de um componente TMultifield. É importante lembrar que um grupo pode conter muitos programas, o que se dá pelo relacio namento de agregação entre SystemGroup e SystemProgram. Figura 108 Cadastro de grupos Por fim, temos o cadastro de usuários. Ao cadastrarmos um usuário, poderemos relacionar o mesmo a um ou vários grupos, e a um ou vários programas. Pode mos marcar vários grupos nas checkboxes à esquerda, o que é representado

42 Capítulo 5 - Organização e controle Amostra do livro 201 Obs: O controlador de formulários pressupõe que o objeto que representa o formulário tenha o nome $this->form. Então você deve declarar o formulário com esse nome. app/control/organization/standardcontrols/standardformview.class.php <?php class StandardFormView extends TStandardForm protected $form; function construct() parent:: construct(); // define a base de dados parent::setdatabase('samples'); // define o active record parent::setactiverecord('city'); // cria o formulário $this->form = new TQuickForm('form_City'); $this->form->class = 'tform'; // define a classe CSS $this->form->style = 'width: 500px'; // largura // define o título do form $this->form->setformtitle('standard Form'); // cria os campos $id = new TEntry('id'); $name = new TEntry('name'); $id->seteditable(false); // adiciona os campos no formulário $this->form->addquickfield('id', $id, 100); $this->form->addquickfield('name', $name, 100); // define as ações do formulário $this->form->addquickaction('save', new TAction(array($this, 'onsave')), 'ico_save.png'); $this->form->addquickaction('new', new TAction(array($this, 'onedit')), 'ico_new.png'); $this->form->addquickaction('listing',new TAction(array('StandardDataGridView', 'onreload')), 'ico_datagrid.gif');?> // adiciona o formulário à página parent::add($this->form); Controlador de datagrid Agora que já aprendemos a criar um formulário de maneira rápida, vamos criar uma datagrid com poucas linhas de código. Para tal, vamos utilizar um contro lador padrão chamado TStandardList. Este controlador contém implementa dos de maneira genérica os métodos mais utilizados na manipulação de data

43 7 DESENVOLVIMENTO ÁGIL COM STUDIO PRO CAPÍTULO 7 Desenvolvimento ágil com o Adianti Studio Pro Ao utilizarmos um framework para desenvolvimento de sistemas, ga nhamos uniformidade no código fonte, maior qualidade e padronização. Para agilizar ainda mais o desenvolvimento de aplicações foi desenvolvi da a ferramenta Adianti Studio Pro, uma IDE para desenvolvimento de sistemas que automatiza a criação do código fonte voltado ao Adianti Framework, tornando muito mais ágil o desenvolvimento de novos siste mas. 7.1 Introdução Organização da interface O Adianti Studio é uma IDE multi plataforma para desenvolvimento de siste mas que conta com uma série de características, dentre as quais podem ser des tacadas: autocomplete para PHP e para os métodos de classes do projeto, sinta xe colorida, comparação gráfica de arquivos, bookmarks, possibilidade de cria ção de plugins, integração com subversion, dentre outras. Na figura a seguir po demos conferir a tela inicial do Adianti Studio Pro. Veja a seguir o significado de cada item: B Barra de ferramentas padrão: Contém as principais funcionalidades da ferramenta, tais como: novo, abrir, salvar, identar, aplicar plugin, sair, etc; C Barra de ferramentas Adianti: Contém as funções da versão pro, que agilizam o processo de criação de novas aplicações;

44 308 Amostra do livro Adianti Framework para PHP D Barra de plugins: Disponibiliza os plugins criados na ferramenta para aplicação rápida sobre o arquivo e/ou projeto que está aberto; E Barra de favoritos: Permite abrir rapidamente um arquivo favorito, bem como acrescentar um arquivo na barra de favoritos; F Árvore do projeto: Área de navegação, onde são listadas as pastas e ar quivos do projeto para abertura. Na segunda aba, temos uma lista de mé todos da classe ativa; e na terceira, uma lista de bases de dados cadastra das; G Área de edição: Área de edição do arquivo, contendo uma aba por ar quivo. Figura 112 Tela inicial do Adianti Studio Pro Visão geral dos menus Como pode ser visto na figura a seguir, no menu Arquivo, temos opções tradi cionais para manipulação de arquivos. Na opção Novo, temos a possibilidade de criar um arquivo vazio PHP, um novo Projeto de desenvolvimento genéri co em PHP ou uma Conexão de banco de dados. Em seguida, temos opções como: Abrir, Salvar e Salvar como. Neste menu, também temos a opção Comparar, que permite comparar graficamente o arquivo aberto com um ou tro arquivo, Exportar para PDF, que exporta o código fonte em PDF e Salvar Área de Trabalho, que memoriza os arquivos abertos.

45 Capítulo 7 - Desenvolvimento ágil com Studio Pro Amostra do livro 315 bre os mesmos. Para que seja possível editarmos os registros de uma tabela, é preciso que a mesma tenha as chaves primárias registradas no banco de dados. Também podemos excluir registros, bem como criar novos registros na tabela. Figura 123 Janela de navegação de tabela 7.2 Geração de código O Adianti Studio Pro adiciona um conjunto de funcionalidades em relação ao Adianti Studio Standard. Estas funcionalidades são voltadas a dar maior agili dade no desenvolvimento de aplicações desenvolvidas para o Adianti Fra mework. Na figura a seguir podemos ver em destaque a barra de ferramentas Adianti. Esta barra de ferramentas contém algumas funcionalidades voltadas para agilizar a criação de aplicações Adianti Framework. Dentre as funcionali dades, podem ser destacadas a geração automática das classes de modelo e de páginas, baseadas em wizards. Figura 124 Barra de ferramentas de geração de código no Adianti Studio Pro

46 316 Amostra do livro Adianti Framework para PHP Criando o projeto Para iniciar um novo projeto, podemos utilizar o menu Novo projeto, da barra de ferramentas Adianti. Este menu possui duas opções: Projeto Adianti Fra mework, que permite a criação de um novo projeto de aplicação usando o Adi anti Framework, e Projeto genérico PHP, que permite a criação de um projeto qualquer em PHP. A segunda opção já vimos na seção Gerenciamento de pro jetos. Figura 125 Menu de opções para criação de novos projetos Quando acessada a opção Projeto Adianti Framework, uma nova janela será exibida, tal qual representada na próxima figura. Por meio dessa janela, pode mos criar projetos dentro do Studio. Para criar um projeto basta preencher seu nome, responder se deseja copiar a estrutura do framework para dentro da pas ta do projeto, escolher qual a biblioteca padrão a ser usada (Web ou Gtk) e se lecionar a pasta do projeto (que poderá ser criada neste momento). Figura 126 Janela de criação de novo projeto Adianti Framework A partir da seleção da pasta, a ferramenta já sugere e preenche automaticamen te o campo Pasta das classes, com os caminhos padronizados utilizados pelo

47 Capítulo 7 - Desenvolvimento ágil com Studio Pro Amostra do livro 319 mente derivada a partir do modelo de classes por meio de técnicas de mapea mento objeto relacional amplamente conhecidas. Dentro do menu Novo ban co da barra de ferramentas Adianti, temos a opção A partir de um modelo XMI, que nos permite criar um modelo relacional por meio da linguagem SQL a partir de um modelo de classes. Figura 129 Menu de opções para criação do banco de dados a partir de modelo XMI Modelos de classe são armazenados em arquivos do tipo XMI (XML Metadata Interchange), que são arquivos XML utilizados para representar modelos de projeto de software orientados a objetos. Arquivos XMI podem ser gerados por ferramentas de modelagem conhecidas como: ArgoUML, Astah, Rational Rose, StarUML, Umbrello, dentre outros. Na figura a seguir temos a representação de um modelo de classes dentro da ferramenta StarUML. Este modelo pode ser ex portado para o formato XMI e posteriormente importando pelo Adianti Studio Pro para criação da base de dados. Figura 130 Modelo de classes na ferramenta StarUML

ADIANTI FRAMEWORK PARA PHP

ADIANTI FRAMEWORK PARA PHP ADIANTI FRAMEWORK PARA PHP 5ª edição PABLO DALL'OGLIO Copyright 2012 de Pablo Dall'Oglio. Todos os direitos reservados e protegidos pela Lei 9.160 de 19/02/1998. É proibida a reprodução desta obra, mesmo

Leia mais

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova. 3.5 Páginas: Ao clicar em Páginas, são exibidas todas as páginas criadas para o Blog. No nosso exemplo já existirá uma página com o Título Página de Exemplo, criada quando o WorPress foi instalado. Ao

Leia mais

ADIANTI FRAMEWORK PARA PHP

ADIANTI FRAMEWORK PARA PHP ADIANTI FRAMEWORK PARA PHP 7ª edição PABLO DALL'OGLIO Copyright 2012 de Pablo Dall'Oglio. Todos os direitos reservados e protegidos pela Lei 9.160 de 19/02/1998. É proibida a reprodução desta obra, mesmo

Leia mais

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. 1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. Editando um Artigo 4.3. Excluindo um Artigo 4.4. Publicar

Leia mais

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web Manual do Publicador Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web Sumário Painel de Administração... 3 1 - Inserção de post... 5 2 Publicação de post com notícia na área headline (galeria de

Leia mais

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5. Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5. Ele considera que você já tem o Joomla! instalado no seu computador. Caso você queira utilizá lo em um servidor na web,

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Sistema de Gerenciamento Remoto www.pevermelho.art.br

Sistema de Gerenciamento Remoto www.pevermelho.art.br Sistema de Gerenciamento Remoto www.pevermelho.art.br 1 - SOBRE O SGR Este manual irá lhe ajudar a entender o funcionamento do SGR (Sistema de Gerenciamento Remoto) permitindo assim que você possa atualizar

Leia mais

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova. 3.5 Páginas: Ao clicar em Páginas, são exibidas todas as páginas criadas para o Blog. No nosso exemplo já existirá uma página com o Título Página de Exemplo, criada quando o WorPress foi instalado. Ao

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Tema UFPel 2.0 WP Institucional Guia de Opções de Personalização

Tema UFPel 2.0 WP Institucional Guia de Opções de Personalização Tema UFPel 2.0 WP Institucional Guia de Opções de Personalização Sumário 1. Configurações Iniciais...2 1.1. Configurando o Menu Personalizado...2 1.2. Configurando os Widgets...3 2. Localize o nome de

Leia mais

Manual de Utilização do PLONE (Gerenciador de página pessoal)

Manual de Utilização do PLONE (Gerenciador de página pessoal) Manual de Utilização do PLONE (Gerenciador de página pessoal) Acessando o Sistema Para acessar a interface de colaboração de conteúdo, entre no endereço http://paginapessoal.utfpr.edu.br. No formulário

Leia mais

Tutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados

Tutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados Tutorial Plone 4 Manutenção de Sites Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados Sumário Introdução 1 Como fazer a autenticação do usuário 1.1 Através do

Leia mais

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar

Leia mais

Manual Captura S_Line

Manual Captura S_Line Sumário 1. Introdução... 2 2. Configuração Inicial... 2 2.1. Requisitos... 2 2.2. Downloads... 2 2.3. Instalação/Abrir... 3 3. Sistema... 4 3.1. Abrir Usuário... 4 3.2. Nova Senha... 4 3.3. Propriedades

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

CONSTRUÇÃO DE BLOG COM O BLOGGER

CONSTRUÇÃO DE BLOG COM O BLOGGER CONSTRUÇÃO DE BLOG COM O BLOGGER Blog é uma abreviação de weblog, qualquer registro frequênte de informações pode ser considerado um blog (últimas notícias de um jornal online por exemplo). A maioria das

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

Análise de Dados do Financeiro

Análise de Dados do Financeiro Análise de Dados do Financeiro Introdução Para reunir em um só local as informações de contas a pagar e receber cadastradas e/ou geradas no sistema TTransp existe a interface de análise de dados do financeiro.

Leia mais

Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania

Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania Sumário Objetivos do Blog... 2 Log-in... 3 Esqueci minha senha... 4 Utilizando o Blog... 5 Encontrando seu Blog... 5 Conhecendo o

Leia mais

Sistema de Chamados Protega

Sistema de Chamados Protega SUMÁRIO 1. INTRODUÇÃO... 3 2. REALIZANDO ACESSO AO SISTEMA DE CHAMADOS... 4 2.1 DETALHES DA PÁGINA INICIAL... 5 3. ABERTURA DE CHAMADO... 6 3.1 DESTACANDO CAMPOS DO FORMULÁRIO... 6 3.2 CAMPOS OBRIGATÓRIOS:...

Leia mais

QUALIDATA Soluções em Informática. Módulo CIEE com convênio empresas

QUALIDATA Soluções em Informática. Módulo CIEE com convênio empresas FM-0 1/21 ÍNDICE 1. MÓDULO DESKTOP(SISTEMA INSTALADO NO CIEE)... 2 Cadastro de Ofertas de Empregos:... 2 Cadastro de Eventos:... 3 Cadastro de Instituições do Curriculum:... 5 Cadastro de Cursos do Curriculum:...

Leia mais

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade do Sistema Índice Página 1. Como acessar o sistema 1.1 Requisitos mínimos e compatibilidade 03 2. Como configurar o Sistema 2.1 Painel de Controle 2.2 Informando o nome da Comissária 2.3 Escolhendo a Cor

Leia mais

Manual das funcionalidades Webmail AASP

Manual das funcionalidades Webmail AASP Manual das funcionalidades Webmail AASP 1. Configurações iniciais 2. Regras 3. Histórico da conta 4. Autorresposta 5. Dados de acesso (alterando senha de acesso) 6. Identidade (assinatura) 7. Redirecionamento

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT. Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT. PÁGINA: 2 de 21 Nenhuma parte deste documento pode ser utilizado ou reproduzido, em qualquer meio

Leia mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor de sites SoftPixel GUIA RÁPIDO - 1 - GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template

Leia mais

Escritório Virtual Administrativo

Escritório Virtual Administrativo 1 Treinamento Módulos Escritório Virtual Administrativo Sistema Office Instruções para configuração e utilização do módulo Escritório Virtual e módulo Administrativo do sistema Office 2 3 1. Escritório

Leia mais

USANDO O ROUNDCUBE WEBMAIL

USANDO O ROUNDCUBE WEBMAIL USANDO O ROUNDCUBE WEBMAIL ATENÇÃO! Para utilizar este tutorial não se esqueça: Onde estiver escrito seusite.com.br substitua pelo ENDEREÇO do seu site (domínio). Ex.: Se o endereço do seu site é casadecarnessilva.net

Leia mais

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...

Leia mais

GERENCIADOR DE CONTEÚDO

GERENCIADOR DE CONTEÚDO 1/1313 MANUAL DO USUÁRIO GERENCIADOR DE CONTEÚDO CRISTAL 2/13 ÍNDICE 1. OBJETIVO......3 2. OPERAÇÃO DOS MÓDULOS......3 2.1 GERENCIADOR DE CONTEÚDO......3 2.2 ADMINISTRAÇÃO......4 Perfil de Acesso:... 4

Leia mais

Como incluir artigos:

Como incluir artigos: Como incluir artigos: O WordPress é uma ferramenta muito flexível, com muitas variações e ajustes que podem torná-lo algo muito simples e também muito sofisticado conforme os recursos que são configurados

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

Leia mais

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Criação de Formulários no Google Drive Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Criação de Formulários no Google Drive Introdução...

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

PHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006.

PHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006. PHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006. Veja como montar um formulário para upload de múltiplos arquivos e como processá-lo com o PHP, usando

Leia mais

Banco de Dados BrOffice Base

Banco de Dados BrOffice Base Banco de Dados BrOffice Base Autor: Alessandro da Silva Almeida Disponível em: www.apostilando.com 27/02/2011 CURSO TÉCNICO EM SERVIÇO PÚBLICO Apostila de Informática Aplicada - Unidade VI Índice Apresentação...

Leia mais

Trecho retirando do Manual do esocial Versão 1.1

Trecho retirando do Manual do esocial Versão 1.1 Trecho retirando do Manual do esocial Versão 1.1 A rotina de acesso direto ao XML do S-1000, o usuário pode encontrar na opção de cadastro de Empresas do SIP. Sempre que o usuário localizar a figura ao

Leia mais

Personalizações do mysuite

Personalizações do mysuite Personalizações do mysuite 1. mysuite... 2 2. Customização de campos... 3 3. Importação de dados... 3 4. Integração de sistemas... 3 5. Personalização do Atendimento Online... 4 5.1. Imagens de online

Leia mais

MANUAL DO PVP SUMÁRIO

MANUAL DO PVP SUMÁRIO Manual PVP - Professores SUMÁRIO 1 INTRODUÇÃO... 6 2 ACESSANDO O PVP... 8 3 TELA PRINCIPAL... 10 3.1 USUÁRIO... 10 3.2 INICIAL/PARAR... 10 3.3 RELATÓRIO... 10 3.4 INSTITUIÇÕES... 11 3.5 CONFIGURAR... 11

Leia mais

INSTALAÇÃO DO SISTEMA CONTROLGÁS

INSTALAÇÃO DO SISTEMA CONTROLGÁS INSTALAÇÃO DO SISTEMA CONTROLGÁS 1) Clique duas vezes no arquivo ControlGasSetup.exe. Será exibida a tela de boas vindas do instalador: 2) Clique em avançar e aparecerá a tela a seguir: Manual de Instalação

Leia mais

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! TUTORIAL DO ALUNO Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! O Moodle é a plataforma de ensino a distância utilizada pela Uniapae sendo a unidade de ensino para rápida capacitação

Leia mais

BEM-VINDO AO dhl PROVIEW

BEM-VINDO AO dhl PROVIEW BEM-VINDO AO dhl PROVIEW Guia de Usuário O DHL PROVIEW COLOCA VOCÊ NO CONTROLE DE SEUS ENVIOS. PROVIEW O DHL ProView é uma ferramenta de rastreamento on-line que permite o gerenciamento dos envios, a programação

Leia mais

OFICINA BLOG DAS ESCOLAS

OFICINA BLOG DAS ESCOLAS OFICINA BLOG DAS ESCOLAS Créditos: Márcio Corrente Gonçalves Mônica Norris Ribeiro Março 2010 1 ACESSANDO O BLOG Blog das Escolas MANUAL DO ADMINISTRADOR Para acessar o blog da sua escola, acesse o endereço

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

Introdução ao Tableau Server 7.0

Introdução ao Tableau Server 7.0 Introdução ao Tableau Server 7.0 Bem-vindo ao Tableau Server; Este guia orientará você pelas etapas básicas de instalação e configuração do Tableau Server. Em seguida, usará alguns dados de exemplo para

Leia mais

MANUAL JOOMLA 2.5 PORTAL INTERNET. Ministério do Esporte

MANUAL JOOMLA 2.5 PORTAL INTERNET. Ministério do Esporte MANUAL JOOMLA 2.5 PORTAL INTERNET Ministério do Esporte SUMÁRIO 1.0 - Módulo Administração... 1 2.0 Banner randômico... 2 2.1 Adicionar novo slide... 2 2.2 Excluir slide... 6 3.0 Artigos... 7 3.1 Adicionar

Leia mais

Manual de Utilização do Zimbra

Manual de Utilização do Zimbra Manual de Utilização do Zimbra Compatível com os principais navegadores web (Firefox, Chrome e Internet Explorer) o Zimbra Webmail é uma suíte completa de ferramentas para gerir e-mails, calendário, tarefas

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI ESTE MATERIAL TEM UM OBJETIVO DE COMPLEMENTAR OS ASSUNTOS ABORDADOS DENTRO DE SALA DE AULA, TORNANDO-SE UM GUIA PARA UTILIZAÇÃO DA FERRAMENTA

Leia mais

CRIANDO TEMPLATES E LEGENDAS

CRIANDO TEMPLATES E LEGENDAS CRIANDO TEMPLATES E LEGENDAS Este tutorial tem como objetivo instruir passo à passo como criar templates de peças, utilizar os novos recursos de cadastro de propriedade de peças e criação de legenda. 1-

Leia mais

Banco de Dados Microsoft Access: Criar tabelas

Banco de Dados Microsoft Access: Criar tabelas Banco de Dados Microsoft Access: Criar s Vitor Valerio de Souza Campos Objetivos do curso 1. Criar uma no modo de exibição Folha de Dados. 2. Definir tipos de dados para os campos na. 3. Criar uma no modo

Leia mais

Manual do Sistema de Cadastro de Cultivares Locais, Tradicionais e Crioulas

Manual do Sistema de Cadastro de Cultivares Locais, Tradicionais e Crioulas Ministério do Desenvolvimento Agrário Secretaria da Agricultura Familiar Departamento de Financiamento e Proteção da Produção Seguro da Agricultura Familiar Manual do Sistema de Cadastro de Cultivares

Leia mais

ROTINAS PADRÕES DO SISTEMAS

ROTINAS PADRÕES DO SISTEMAS ROTINAS PADRÕES DO SISTEMAS Usando o Sistema pela primeira vez Ao executar o seu Sistema pela primeira vez a tela abaixo será apresentada para que você possa configurar os diretórios onde serão achados

Leia mais

Omega Tecnologia Manual Omega Hosting

Omega Tecnologia Manual Omega Hosting Omega Tecnologia Manual Omega Hosting 1 2 Índice Sobre o Omega Hosting... 3 1 Primeiro Acesso... 4 2 Tela Inicial...5 2.1 Área de menu... 5 2.2 Área de navegação... 7 3 Itens do painel de Controle... 8

Leia mais

A barra de menu a direita possibilita efetuar login/logout do sistema e também voltar para a página principal.

A barra de menu a direita possibilita efetuar login/logout do sistema e também voltar para a página principal. MANUAL DO SISCOOP Sumário 1 Menu de Navegação... 3 2 Gerenciar País... 5 3- Gerenciamento de Registro... 8 3.1 Adicionar um registro... 8 3.2 Editar um registro... 10 3.3 Excluir um registro... 11 3.4

Leia mais

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO SISTEMA DE BANCO DE IMAGENS MANUAL DE USO Versão: BETA Última atualização: 24/06/2012 Índice O sistema de banco de imagens 03 Pesquisa de fotos 04 Pautas e eventos 08 Cadastro de fotos 09 Edição e indexação

Leia mais

Manual do Instar Mail v2.0

Manual do Instar Mail v2.0 Manual do Instar Mail v2.0 Sumário Conteúdo Menu Principal... 2 Menu Cliente... 3 Pagina Categorias do Instar-Mail... 4 Importação... 4 Campanhas... 8 Cadastramento de campanhas do Instar-Mail... 9 Ações

Leia mais

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!!

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!! Apresentação Este manual é uma orientação para os participantes de cursos no ambiente Moodle do INSTITUTO PRISMA. Tem como objetivo orientar sobre as ações básicas de acesso e utilização do ambiente virtual

Leia mais

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos Banco de Dados Microsoft Access: Criar tabelas Vitor Valerio de Souza Campos Objetivos do curso 1. Criar uma tabela no modo de exibição Folha de Dados. 2. Definir tipos de dados para os campos na tabela.

Leia mais

Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4.

Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4. 1 Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4. Interface do sistema... 4 1.4.1. Janela Principal... 4 1.5.

Leia mais

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Manual de Utilização Google Grupos Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Utilização do Google Grupos Introdução... 3 Página

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Módulo 1 Configuração de Cursos. Robson Santos da Silva Ms.

Módulo 1 Configuração de Cursos. Robson Santos da Silva Ms. Módulo 1 Configuração de Cursos Robson Santos da Silva Ms. Olá! Estamos iniciando o Módulo 1. Nele, aprenderemos a configurar um novo curso no MOODLE. Além disso, identificaremos os dispositivos e ferramentas

Leia mais

Anote aqui as informações necessárias:

Anote aqui as informações necessárias: banco de mídias Anote aqui as informações necessárias: URL E-mail Senha Sumário Instruções de uso Cadastro Login Página principal Abrir arquivos Área de trabalho Refine sua pesquisa Menu superior Fazer

Leia mais

Manual do Usuário CFCWeb BA

Manual do Usuário CFCWeb BA ÍNDICE Acesso ao sistema... 2 Tela Principal... 3 Cadastro de Candidatos... 5 Agenda Teórico... 6 Agenda Prático... 7 Consulta Agendamentos do Candidato por Serviço... 9 Cadastro de Grade Horária... 10

Leia mais

1 Sumário... 2. 2 O Easy Chat... 3. 3 Conceitos... 3. 3.1 Perfil... 3. 3.2 Categoria... 3. 4 Instalação... 5. 5 O Aplicativo... 7 5.1 HTML...

1 Sumário... 2. 2 O Easy Chat... 3. 3 Conceitos... 3. 3.1 Perfil... 3. 3.2 Categoria... 3. 4 Instalação... 5. 5 O Aplicativo... 7 5.1 HTML... 1 Sumário 1 Sumário... 2 2 O Easy Chat... 3 3 Conceitos... 3 3.1 Perfil... 3 3.2 Categoria... 3 3.3 Ícone Específico... 4 3.4 Janela Específica... 4 3.5 Ícone Geral... 4 3.6 Janela Geral... 4 4 Instalação...

Leia mais

Google Drive. Passos. Configurando o Google Drive

Google Drive. Passos. Configurando o Google Drive Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.

Leia mais

Portal da Prefeitura de São Paulo SECOM. MANUAL DO WARAM v. 1.5 Secretarias

Portal da Prefeitura de São Paulo SECOM. MANUAL DO WARAM v. 1.5 Secretarias SECOM MANUAL DO WARAM v. 1.5 Secretarias WARAM 1.5 Ferramenta de atualização do Portal da Prefeitura de São Paulo. Use preferencialmente o navegador Internet Explorer superior ou igual a 7.0. No campo

Leia mais

WF Processos. Manual de Instruções

WF Processos. Manual de Instruções WF Processos Manual de Instruções O WF Processos é um sistema simples e fácil de ser utilizado, contudo para ajudar os novos usuários a se familiarizarem com o sistema, criamos este manual. Recomendamos

Leia mais

Manual de Utilização

Manual de Utilização Manual de Utilização Versão 1.0 18/01/2013 Sempre consulte por atualizações deste manual em nossa página. O Cotação Web está em constante desenvolvimento, podendo ter novas funcionalidades adicionadas

Leia mais

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES MANUAL DO USUÁRIO SISTEMA DE SUPORTE DA PREFEITURA UNIVERSITÁRIA

Leia mais

Sumário: Fluxo Operacional... 3 Contatos... 4. Agenda Online... 10. Reservas de Salas... 26. Tarefas... 42

Sumário: Fluxo Operacional... 3 Contatos... 4. Agenda Online... 10. Reservas de Salas... 26. Tarefas... 42 Sumário: Fluxo Operacional... 3 Contatos... 4 Passo a passo para visualização de contatos... 5 Passo a passo para filtragem da lista de contatos... 6 Como ordenar a lista de contatos... 7 Como gerar uma

Leia mais

Manual do Plone (novo portal do IFCE)

Manual do Plone (novo portal do IFCE) Manual do Plone (novo portal do IFCE) Dezembro/2015 Índice Como criar submenus... 3 Como criar banner rotativo... 4 Como remover um banner... 5 Como criar uma notícia... 6 Como inserir imagem na notícia...

Leia mais

Procedimentos para Instalação do Sisloc

Procedimentos para Instalação do Sisloc Procedimentos para Instalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Instalação do Sisloc... 3 Passo a passo... 3 3. Instalação da base de dados Sisloc... 16 Passo a passo... 16 4. Instalação

Leia mais

Manual de Gerenciamento de Conteúdo

Manual de Gerenciamento de Conteúdo Manual de Gerenciamento de Conteúdo 1 Sumário 1) O que é um Gerenciador de Conteúdo...3 2) Como o Site está Estruturado...3 3) Como Gerenciar o Conteúdo do Site...5 3.1) Adicionar Itens no Menu de Navegação...6

Leia mais

Curso de atualização Educação Integral e Integrada. Tutorial Moodle. Belo Horizonte, 2013.

Curso de atualização Educação Integral e Integrada. Tutorial Moodle. Belo Horizonte, 2013. Curso de atualização Educação Integral e Integrada Tutorial Moodle Belo Horizonte, 2013. 1. INTRODUÇÃO... 3 2. ACESSANDO O AMBIENTE... 4 3. CONHECENDO O AMBIENTE... 5 3.1. CAIXAS DE UTILIDADES... 5 4.

Leia mais

O GEM é um software 100% Web, ou seja, você poderá acessar de qualquer local através da Internet.

O GEM é um software 100% Web, ou seja, você poderá acessar de qualquer local através da Internet. Olá! Você está recebendo as informações iniciais para utilizar o GEM (Software para Gestão Educacional) para gerenciar suas unidades escolares. O GEM é um software 100% Web, ou seja, você poderá acessar

Leia mais

NewAgent enterprise-brain

NewAgent enterprise-brain Manual NewAgent enterprise-brain Configuração Manual NewAgent enterprise-brain Configuração Este manual de uso irá ajudá-lo na utilização de todas as funções administrativas que a NewAgent possui e assim,

Leia mais

Portal do Senac: Área Exclusiva para Alunos Manual de Navegação e Operação

Portal do Senac: Área Exclusiva para Alunos Manual de Navegação e Operação Portal do Senac: Área Exclusiva para Alunos Índice 1. Introdução... 4 2. Acessando a área exclusiva... 5 3. Trocando a senha... 6 4. Mensagens... 7 4.1. Conhecendo a tela principal... 7 4.2. Criando uma

Leia mais

Upload e Download de Arquivos. Ao programador Morfik, cabe implementar em sua aplicação os mecanismos gerenciem todo o processo acima.

Upload e Download de Arquivos. Ao programador Morfik, cabe implementar em sua aplicação os mecanismos gerenciem todo o processo acima. Upload e Download de Arquivos Considerações gerais. As aplicações Web 2 tem como uma de suas características principais, o fato de permitirem aos usuários, que eles mesmo criem conteúdo, sem depender de

Leia mais

ALUNES MANUAL DO USUÁRIO. Guia rápido Alunes

ALUNES MANUAL DO USUÁRIO. Guia rápido Alunes ALUNES MANUAL DO USUÁRIO Guia rápido Alunes 1 Manual de Instruções Versão 2.0 Alunes Informática 2 Sumário Introdução... 5 Pré-requisitos... 5 Principal/Home... 6 Como editar texto do home... 7 Desvendando

Leia mais

MANUAL DO USUÁRIO. Guia de orientações e conceitos para manipulação da plataforma Miraklon. VERSÃO 1.0 12.02.2014. Vigência 12.02.

MANUAL DO USUÁRIO. Guia de orientações e conceitos para manipulação da plataforma Miraklon. VERSÃO 1.0 12.02.2014. Vigência 12.02. MANUAL DO USUÁRIO VERSÃO 1.0 12.02.2014 Vigência 12.02.2014 Guia de orientações e conceitos para manipulação da plataforma Miraklon. SUMÁRIO 1. CONFIGURAÇÕES... 3 1.1 - Dados Gerais... 3 1.2 Formulários...

Leia mais

1. Escritório Virtual... 5. 1.1. Atualização do sistema...5. 1.2. Instalação e ativação do sistema de Conexão...5

1. Escritório Virtual... 5. 1.1. Atualização do sistema...5. 1.2. Instalação e ativação do sistema de Conexão...5 1 2 Índice 1. Escritório Virtual... 5 1.1. Atualização do sistema...5 1.2. Instalação e ativação do sistema de Conexão...5 1.3. Cadastro do Escritório...5 1.4. Logo Marca do Escritório...6...6 1.5. Cadastro

Leia mais

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Compartilhamento de Arquivos no Google Drive Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Utilização do Google Grupos Introdução...

Leia mais

EXEMPLO DE COMO FAZER UMA MALA DIRETA

EXEMPLO DE COMO FAZER UMA MALA DIRETA EXEMPLO DE COMO FAZER UMA MALA DIRETA OBS: Para esta nota de aula foi utilizada como referência: Apostila Mala Direta Santos, Jorge Rodrigues dos. Foram adaptados os comando para utilizar mala direta no

Leia mais

Ambiente Virtual de Aprendizagem C.S.G. M anual do Professor

Ambiente Virtual de Aprendizagem C.S.G. M anual do Professor Ambiente Virtual de Aprendizagem C.S.G. M anual do Professor Sumário Pré-requisitos para o Moodle... Entrar no Ambiente... Usuário ou senha esquecidos?... Meus cursos... Calendário... Atividades recentes...

Leia mais

15. OLHA QUEM ESTÁ NA WEB!

15. OLHA QUEM ESTÁ NA WEB! 7 a e 8 a SÉRIES / ENSINO MÉDIO 15. OLHA QUEM ESTÁ NA WEB! Sua home page para publicar na Internet SOFTWARES NECESSÁRIOS: MICROSOFT WORD 2000 MICROSOFT PUBLISHER 2000 SOFTWARE OPCIONAL: INTERNET EXPLORER

Leia mais

Manual de configuração do sistema

Manual de configuração do sistema Manual de configuração do sistema (v.1.5.x Beta) Rua México, 119 Sala 2004 Centro Rio de Janeiro, RJ www.doctors-solution.com.br www.simdoctor.com.br contato@simdoctor.com.br Sumário 1. Fazendo seu primeiro

Leia mais

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com Gerenciamento de Arquivos e Pastas Professor: Jeferson Machado Cordini jmcordini@hotmail.com Arquivo Todo e qualquer software ou informação gravada em nosso computador será guardada em uma unidade de disco,

Leia mais

OneDrive: saiba como usar a nuvem da Microsoft

OneDrive: saiba como usar a nuvem da Microsoft OneDrive: saiba como usar a nuvem da Microsoft O OneDrive é um serviço de armazenamento na nuvem da Microsoft que oferece a opção de guardar até 7 GB de arquivos grátis na rede. Ou seja, o usuário pode

Leia mais

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI SERVICE DESK MANAGER SDM Manual do Sistema - DPOI Conteúdo SERVICE DESK MANAGER SDM... 1 Manual do Sistema - DPOI... 1 INTRODUÇÃO... 4 ACESSO AO SISTEMA... 5 OPÇÕES DO SISTEMA... 6 SISTEMA... 7 Pesquisar

Leia mais

Apostila de criação de website

Apostila de criação de website Apostila de criação de website "Webnode" OBS: Informações e imagens retiradas do webnode O que é o WebNode : O WebNode é um sistema de criação de sites de fácil utilização. # Grátis. Sem burocracias, #

Leia mais

Manual de utilização do site de contatos

Manual de utilização do site de contatos Manual de utilização do site de contatos O site de contatos da Cestalto é uma área exclusiva para representantes de vendas, que serve para registrar os contatos que você realizar com seus clientes. Assim,

Leia mais

TUTORIAL AUTODESK 360 COLABORAÇÃO E ARMAZENAMENTO DE ARQUIVOS

TUTORIAL AUTODESK 360 COLABORAÇÃO E ARMAZENAMENTO DE ARQUIVOS TUTORIAL AUTODESK 360 COLABORAÇÃO E ARMAZENAMENTO DE ARQUIVOS Autodesk 360 é a nuvem da Autodesk, podendo ser acessada pela sua conta da Autodesk Education Community (estudantes) ou Autodesk Academic Resource

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...

Leia mais