J3.x

Creating a simple module/Developing a Basic Module/pt-br: Difference between revisions

From Joomla! Documentation

Created page with "pt-br"
 
FuzzyBot (talk | contribs)
Updating to match new version of source page
 
(73 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<noinclude><languages /></noinclude>
<noinclude><languages /></noinclude>
{{J3.x:Creating_a_simple_module/pt-br}}
{{J3.x:Creating_a_simple_module/pt-br}}
A module is a lightweight and flexible extension. They are used for small bits of the page that are generally less complex and are able to be seen across different components.
<div class="mw-translate-fuzzy">
Um módulo é uma extensão leve e flexível. São usados para adicionar pequenas funcionalidades na página e são geralmente menos complexos e  capazes de serem visto através de componentes diferentes.
</div>


You can see many examples of modules in the standard Joomla! install: - menus - Latest News - Login form - and many more.
Você pode encontrar muitos exemplos de módulos na instalação padrão do Joomla: - Menu - Artigos - Últimas Notícias -Formulário de Acesso - e muito mais.
<blockquote>
'''N.T.''' disponível em: <tt><seu site>/administrator/index.php?option=com_installer&view=manage</tt>
</blockquote>


This tutorial will explain how to go about creating a simple Hello World module. Through this tutorial you will learn the basic file structure of a module. This basic structure can then be expanded to produce more elaborate modules.
Este tutorial irá explicar como criar um módulo Hello World simples. Através deste tutorial, você aprenderá a estrutura básica de um módulo. Esta estrutura básica pode então ser expandida para produzir módulos mais elaborados.


== File Structure ==
== Estrutura dos Arquivos ==


There are four basic files that are used in the standard pattern of module development:  
Existem quatro arquivos básicos que são usados no desenvolvimento de módulo:  
* <code>mod_helloworld.php</code> - This file is the main entry point for the module. It will perform any necessary initialization routines, call helper routines to collect any necessary data, and include the template which will display the module output.
* <code>mod_helloworld.php</code> - Este arquivo é o ponto de entrada principal do módulo. Ele executará todas as rotinas de inicialização necessárias, rotinas auxiliares de chamada para coletar quaisquer dados necessários e incluirá o modelo que exibirá a saída do módulo.


* <code>mod_helloworld.xml</code> - This file contains information about the module. It defines the files that need to be installed by the Joomla! installer and specifies configuration parameters for the module.
* <code>mod_helloworld.xml</code> - Este arquivo contém informações sobre o módulo. Ele define os arquivos que precisam ser instalados pelo instalador do Joomla! e especifica os parâmetros de configuração do módulo.


* <code>helper.php</code> - This file contains the helper class which is used to do the actual work in retrieving the information to be displayed in the module (usually from the database or some other source).
*<code>helper.php</code> - Este arquivo contém a classe helper (auxiliar) que é usada para fazer o trabalho real na recuperação das informações a serem exibidas no módulo (geralmente a partir do banco de dados ou alguma outra fonte).


* <code>tmpl/default.php</code> - This is the module template. This file will take the data collected by mod_helloworld.php and generate the HTML to be displayed on the page.
* <code>tmpl/default.php</code> - Este é o template do módulo. Este arquivo pegará os dados coletados pelo mod_helloworld.php e gerará o HTML que será exibido na página.


== Creating mod_helloworld.php ==
== Criando mod_helloworld.php ==


The <tt>mod_helloworld.php</tt> file will perform three tasks:
O arquivo <tt>mod_helloworld.php</tt> executará três tarefas:
* include the helper.php file which contains the class to be used to collect the necessary data
* Incluir o arquivo helper.php que contém a classe a ser usada para coletar os dados necessários
* invoke the appropriate helper class method to retrieve the data
* Invocar o método apropriado  da classe helper para a recuperação dos dados
* include the template to display the output.
* Incluir o template para exibir o resultado.


The helper class is defined in our helper.php file. This file is included with a require_once statement:
A classe helper é definida no nosso arquivo helper.php. Este arquivo está incluído com uma instrução require_once:
   
   
<source lang="php">require_once dirname(__FILE__) . '/helper.php';</source>
<source lang="php">require_once dirname(__FILE__) . '/helper.php';</source>


<code>require_once</code> is used because our helper functions are defined within a class, and we only want the class defined once.
<code>require_once</code> é usado porque nossas funções auxiliares são definidas dentro de uma classe helper, e só queremos que a classe seja incluída apenas uma vez.


Our helper class has not been defined yet, but when it is, it will contain one method: getHello(). For our basic example, it is not really necessary to do this - the “Hello, World” message that this method returns could simply be included in the template. We use a helper class here to demonstrate this basic technique.
Nossa classe helper ainda não foi definida, mas quando for, ela conterá um método: getHello(). Para o nosso exemplo básico, não é realmente necessário fazer isso - a mensagem "Hello, World" que esse método retorna simplesmente pode ser incluída no modelo. Usamos uma classe auxiliar aqui para demonstrar essa técnica básica.


Our module currently does not use any parameters, but we will pass them to the helper method anyway so that it can be used later if we decide to expand the functionality of our module.
Atualmente, nosso módulo não usa parâmetros, mas vamos passá-los para o método do helper de qualquer forma para que possa ser usado mais tarde se decidimos expandir a funcionalidade do nosso módulo.


The helper class method is invoked in the following way:
O método da classe helper é invocado da seguinte maneira:
   
   
<source lang="php">$hello = modHelloWorldHelper::getHello($params);</source>
<source lang="php">$hello = modHelloWorldHelper::getHello($params);</source>


=== Completed mod_helloworld.php file ===
=== Arquivo mod_helloworld.php concluído ===


The complete <tt>mod_helloworld.php</tt> file is as follows:
O arquivo completo <tt>mod_helloworld.php</tt> é o seguinte:
   
   
<source lang="php"><?php
<source lang="php"><?php
Line 64: Line 69:
$hello = modHelloWorldHelper::getHello($params);
$hello = modHelloWorldHelper::getHello($params);
require JModuleHelper::getLayoutPath('mod_helloworld');
require JModuleHelper::getLayoutPath('mod_helloworld');
</source>
</source>


The one line that we haven’t explained so far is the first line. This line checks to make sure that this file is being included from the Joomla! application. This is necessary to prevent variable injection and other potential security concerns.
<div class="mw-translate-fuzzy">
A única linha que não explicamos até agora é a primeira linha. Esta linha verifica se este arquivo está sendo incluído a partir do Joomla!. Isso é necessário para evitar a injeção de variáveis e outros problemas potenciais de segurança.
</div>


== Creating helper.php ==
== Criando helper.php ==


The <tt>helper.php</tt> file contains that helper class that is used to retrieve the data to be displayed in the module output. As stated earlier, our helper class will have one method: getHello(). This method will return the ‘Hello, World’ message.
<div class="mw-translate-fuzzy">
O arquivo <tt>helper.php</tt> contém essa classe auxiliar que é usada para recuperar os dados a serem exibidos na saída do módulo. Como mencionado anteriormente, nossa classe auxiliar terá um método: getHello(). Esse método retornará a mensagem 'Hello, World'.
</div>


Here is the code for the helper.php file:
Aqui está o código do arquivo helper.php:
   
   
<source lang="php"><?php
<source lang="php"><?php
Line 102: Line 110:
     }
     }
}
}
</source>
</source>


There is no rule stating that we must name our helper class as we have, but it is helpful to do this so that it is easily identifiable and locatable. Note that it is required to be in this format if you plan to use the com_ajax plugin.
<div class="mw-translate-fuzzy">
Não há nenhuma regra afirmando que devemos nomear nossa classe auxiliar (helper) como fizemos, mas é útil para que seja facilmente identificável e localizável. Observe que é obrigatório estar nomeada dessa forma se você planeja usar o plugin com_ajax.
</div>


More advanced modules might include database requests or other functionality in the helper class method.
Os módulos mais avançados podem incluir requisições em banco de dados ou outras funcionalidades dentro dos métodos da classe helper.


== Creating tmpl/default.php ==
== Criando tmpl/default.php ==


The <tt>default.php</tt> file is the template which displays the module output.
O arquivo <tt>default.php</tt> é o template que exibe a saída do módulo.


The code for the default.php file is as follows:
O código para o default.php é o seguinte:
   
   
<source lang="php">
<source lang="php">
Line 122: Line 131:
</source>
</source>


An important point to note is that the template file has the same scope as the mod_helloworld.php file. What this means is that the variable $hello can be defined in the mod_helloworld.php file and then used in the template file without any extra declarations or function calls.
Um ponto importante é que o arquivo de template tem o mesmo escopo do mod_helloworld.php. Isso significa que a variável $hello pode ser definida no arquivo mod_helloworld.php e então utilizada no arquivo de template sem nenhuma declaração externa ou chamada de função.


== Creating mod_helloworld.xml ==
== Criando mod_helloworld.xml ==


The <tt>mod_helloworld.xml</tt> is used to specify which files the installer needs to copy and is used by the Module Manager to determine which parameters are used to configure the module. Other information about the module is also specified in this file.
O arquivo <tt>mod_helloworld.xml</tt> é usado para especificar quais arquivos o instalador necessita copiar e é usado pelo Gerenciador de Módulos para determinar quais parâmetros são usados para configurar o módulo. Outras informações sobre o módulo são também especificados nesse arquivo.


The code for <tt>mod_helloworld.xml</tt> is as follows:
O código do <tt>mod_helloworld.xml</tt> é o seguinte:
   
   
<source lang="xml">
<source lang="xml">
Line 150: Line 159:
</source>
</source>


[[S:MyLanguage/Manifest files|Manifest files]] explains the technical details of the elements used in the XML file.
[[S:MyLanguage/Manifest files|Manifest files]] explica os detalhes técnicos dos elementos usados no arquivo XML.


You will notice that there are two additional files that we have not yet mentioned: index.html and tmpl/index.html. These files are included so that these directories cannot be browsed. If a user attempts to point their browser to these folders, the index.html file will be displayed. These files can be left empty or can contain the simple line:
Você irá notar que lá existem dois arquivos adicionais que ainda não foram mencionados: index.html. Esses arquivos são incluídos para que as pastas não sejam pesquisáveis. Se um usuário tentar apontar o browser para essas pastas, o index.html será exibido. Esses arquivos podem ser deixados em branco ou conter uma linha simples:
   
   
<source lang="html4strict"><html><body bgcolor="#FFFFFF"></body></html></source>
<source lang="html4strict"><html><body bgcolor="#FFFFFF"></body></html></source>


which will display an empty page.
que ira exibir uma página em braco.


Since our module does not use any [[S:MyLanguage/Form_field|form fields]], the config section is empty.
Uma vez que nosso módulo não faz uso  de nenhum [[S:MyLanguage/Form_field|campo de formulário]], a seção de configuração está vazia.


== Conclusion ==
== Installing and Viewing the Module ==
To install the module, zip up the parent directory of your source files, to create a file called <tt>mod_helloworld.zip</tt>. Note that it needs to be a .zip file because the server needs to be able to extract it using Apache's mod_zlib library.
Go into Joomla admin, to the Extensions / Manage / Install form, click on the Update Package File tab, and upload your zip file. You should find that the module installs ok. If it doesn't, then compare carefully your code with the code above, and ensure your source code files are named correctly.
To make the module visible on your site web pages go into the Extensions / Modules listing and click on the Hello World module to edit it.
# set the Status to Published
# select the Position where the module should appear (if you're unsure about which Position to set, then navigate to Extensions / Templates / Styles, check which template is assigned on your web pages, then follow [[S:MyLanguage/Finding module positions on any given page|this guide]] to finding the module positions).
# on the Menu Assignment tab set the Module Assignment to "On all pages"
Save and Close your edit form.
Now if you navigate to your site you should see "Hello, World!" displayed in your chosen module position.


Module development for Joomla! is a fairly simple, straightforward process. Using the techniques described in this tutorial, an endless variety of modules can be developed with little hassle.
== Conclusão ==
O desenvolvimento de módulos para o Joomla! é um processo bastante simples e direto. Usando as técnicas descritas neste tutorial, uma infinita variedade de módulos podem ser desenvolvidos com pouco ou nenhum aborrecimento.


<div class="row">  
<div class="row">  
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Introduction|Prev: Introduction|class=expand success}}</div>
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Introduction|Ant: Introdução|class=expand success}}</div>
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Using_the_Database|Next: Using the Database|class=expand}}</div>
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Using_the_Database|Próx: Usando o Banco de Dados|class=expand}}</div>
</div>
</div>
__NOTOC__
__NOTOC__

Latest revision as of 22:52, 21 July 2020

Joomla! 
3.x
Tutorial
Criando um módulo simples

Esta é uma série de múltiplos artigos sobre a forma de criar um módulo para Joomla! Versão Joomla 3.x. Você pode navegar pelos artigos desta série, usando o menu de navegação

Comece com a Introdução, e navegue pelos artigos desta série usando o botão de navegação abaixo ou a caixa à direita (Artigos desta série).




Um módulo é uma extensão leve e flexível. São usados para adicionar pequenas funcionalidades na página e são geralmente menos complexos e capazes de serem visto através de componentes diferentes.

Você pode encontrar muitos exemplos de módulos na instalação padrão do Joomla: - Menu - Artigos - Últimas Notícias -Formulário de Acesso - e muito mais.

N.T. disponível em: <seu site>/administrator/index.php?option=com_installer&view=manage

Este tutorial irá explicar como criar um módulo Hello World simples. Através deste tutorial, você aprenderá a estrutura básica de um módulo. Esta estrutura básica pode então ser expandida para produzir módulos mais elaborados.

Estrutura dos Arquivos

Existem quatro arquivos básicos que são usados no desenvolvimento de módulo:

  • mod_helloworld.php - Este arquivo é o ponto de entrada principal do módulo. Ele executará todas as rotinas de inicialização necessárias, rotinas auxiliares de chamada para coletar quaisquer dados necessários e incluirá o modelo que exibirá a saída do módulo.
  • mod_helloworld.xml - Este arquivo contém informações sobre o módulo. Ele define os arquivos que precisam ser instalados pelo instalador do Joomla! e especifica os parâmetros de configuração do módulo.
  • helper.php - Este arquivo contém a classe helper (auxiliar) que é usada para fazer o trabalho real na recuperação das informações a serem exibidas no módulo (geralmente a partir do banco de dados ou alguma outra fonte).
  • tmpl/default.php - Este é o template do módulo. Este arquivo pegará os dados coletados pelo mod_helloworld.php e gerará o HTML que será exibido na página.

Criando mod_helloworld.php

O arquivo mod_helloworld.php executará três tarefas:

  • Incluir o arquivo helper.php que contém a classe a ser usada para coletar os dados necessários
  • Invocar o método apropriado da classe helper para a recuperação dos dados
  • Incluir o template para exibir o resultado.

A classe helper é definida no nosso arquivo helper.php. Este arquivo está incluído com uma instrução require_once:

require_once dirname(__FILE__) . '/helper.php';

require_once é usado porque nossas funções auxiliares são definidas dentro de uma classe helper, e só queremos que a classe seja incluída apenas uma vez.

Nossa classe helper ainda não foi definida, mas quando for, ela conterá um método: getHello(). Para o nosso exemplo básico, não é realmente necessário fazer isso - a mensagem "Hello, World" que esse método retorna simplesmente pode ser incluída no modelo. Usamos uma classe auxiliar aqui para demonstrar essa técnica básica.

Atualmente, nosso módulo não usa parâmetros, mas vamos passá-los para o método do helper de qualquer forma para que possa ser usado mais tarde se decidimos expandir a funcionalidade do nosso módulo.

O método da classe helper é invocado da seguinte maneira:

$hello = modHelloWorldHelper::getHello($params);

Arquivo mod_helloworld.php concluído

O arquivo completo mod_helloworld.php é o seguinte:

<?php
/**
 * Hello World! Module Entry Point
 * 
 * @package    Joomla.Tutorials
 * @subpackage Modules
 * @license    GNU/GPL, see LICENSE.php
 * @link       http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module
 * mod_helloworld is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 */

// No direct access
defined('_JEXEC') or die;
// Include the syndicate functions only once
require_once dirname(__FILE__) . '/helper.php';

$hello = modHelloWorldHelper::getHello($params);
require JModuleHelper::getLayoutPath('mod_helloworld');

A única linha que não explicamos até agora é a primeira linha. Esta linha verifica se este arquivo está sendo incluído a partir do Joomla!. Isso é necessário para evitar a injeção de variáveis e outros problemas potenciais de segurança.

Criando helper.php

O arquivo helper.php contém essa classe auxiliar que é usada para recuperar os dados a serem exibidos na saída do módulo. Como mencionado anteriormente, nossa classe auxiliar terá um método: getHello(). Esse método retornará a mensagem 'Hello, World'.

Aqui está o código do arquivo helper.php:

<?php
/**
 * Helper class for Hello World! module
 * 
 * @package    Joomla.Tutorials
 * @subpackage Modules
 * @link http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module
 * @license        GNU/GPL, see LICENSE.php
 * mod_helloworld is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 */
class ModHelloWorldHelper
{
    /**
     * Retrieves the hello message
     *
     * @param   array  $params An object containing the module parameters
     *
     * @access public
     */    
    public static function getHello($params)
    {
        return 'Hello, World!';
    }
}

Não há nenhuma regra afirmando que devemos nomear nossa classe auxiliar (helper) como fizemos, mas é útil para que seja facilmente identificável e localizável. Observe que é obrigatório estar nomeada dessa forma se você planeja usar o plugin com_ajax.

Os módulos mais avançados podem incluir requisições em banco de dados ou outras funcionalidades dentro dos métodos da classe helper.

Criando tmpl/default.php

O arquivo default.php é o template que exibe a saída do módulo.

O código para o default.php é o seguinte:

<?php 
// No direct access
defined('_JEXEC') or die; ?>
<?php echo $hello; ?>

Um ponto importante é que o arquivo de template tem o mesmo escopo do mod_helloworld.php. Isso significa que a variável $hello pode ser definida no arquivo mod_helloworld.php e então utilizada no arquivo de template sem nenhuma declaração externa ou chamada de função.

Criando mod_helloworld.xml

O arquivo mod_helloworld.xml é usado para especificar quais arquivos o instalador necessita copiar e é usado pelo Gerenciador de Módulos para determinar quais parâmetros são usados para configurar o módulo. Outras informações sobre o módulo são também especificados nesse arquivo.

O código do mod_helloworld.xml é o seguinte:

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="3.1.0" client="site" method="upgrade">
    <name>Hello, World!</name>
    <author>John Doe</author>
    <version>1.0.0</version>
    <description>A simple Hello, World! module.</description>
    <files>
        <filename>mod_helloworld.xml</filename>
        <filename module="mod_helloworld">mod_helloworld.php</filename>
        <filename>index.html</filename>
        <filename>helper.php</filename>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
    </files>
    <config>
    </config>
</extension>

Manifest files explica os detalhes técnicos dos elementos usados no arquivo XML.

Você irá notar que lá existem dois arquivos adicionais que ainda não foram mencionados: index.html. Esses arquivos são incluídos para que as pastas não sejam pesquisáveis. Se um usuário tentar apontar o browser para essas pastas, o index.html será exibido. Esses arquivos podem ser deixados em branco ou conter uma linha simples:

<html><body bgcolor="#FFFFFF"></body></html>

que ira exibir uma página em braco.

Uma vez que nosso módulo não faz uso de nenhum campo de formulário, a seção de configuração está vazia.

Installing and Viewing the Module

To install the module, zip up the parent directory of your source files, to create a file called mod_helloworld.zip. Note that it needs to be a .zip file because the server needs to be able to extract it using Apache's mod_zlib library. Go into Joomla admin, to the Extensions / Manage / Install form, click on the Update Package File tab, and upload your zip file. You should find that the module installs ok. If it doesn't, then compare carefully your code with the code above, and ensure your source code files are named correctly. To make the module visible on your site web pages go into the Extensions / Modules listing and click on the Hello World module to edit it.

  1. set the Status to Published
  2. select the Position where the module should appear (if you're unsure about which Position to set, then navigate to Extensions / Templates / Styles, check which template is assigned on your web pages, then follow this guide to finding the module positions).
  3. on the Menu Assignment tab set the Module Assignment to "On all pages"

Save and Close your edit form. Now if you navigate to your site you should see "Hello, World!" displayed in your chosen module position.

Conclusão

O desenvolvimento de módulos para o Joomla! é um processo bastante simples e direto. Usando as técnicas descritas neste tutorial, uma infinita variedade de módulos podem ser desenvolvidos com pouco ou nenhum aborrecimento.