##master-page:HelpTemplate
##master-date:Unknown-Date
#format wiki
#language pt
<<Navigation(children)>> 
<<BR>><<BR>>
<<TableOfContents>>

== Macros ==
As macros permitem a inserção de funcionalidades de sistema em páginas de wiki normais; a única coisa que torna essas páginas especiais é o facto de conterem macros. Se editar páginas como AlteraçõesRecentes ou [[SystemInfo|InformaçãoDeSistema]], verá o que isso significa.

Para mais informações sobre a formatação possível, consulte o tópico AjudaNaEdição.

=== Macros de pesquisa ===
Agora o [[WikiMoinMoin|MoinMoin]] utiliza um novo motor de pesquisa, que lhe permite fazer pesquisas sofisticadas, utilizando ambas as caixas de pesquisa interactiva e qualquer macro de pesquisa. Para mais informações, consulte o tópico AjudaNaPesquisa.
||||||'''Macro''' ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> '''Descrição''' ||'''Exemplo''' ||
||||||{{{[[AdvancedSearch]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Cria um diálogo de pesquisa avançada na página || Ver o tópico PesquisaDePáginas ||
||||||{{{[[TitleSearch]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Cria uma caixa de pesquisa na página, que pesquisa nos títulos das páginas || Ver o tópico PesquisaDePáginas ||
||||||{{{[[FullSearch]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Cria uma caixa de pesquisa na página, que pesquisa no conteúdo das páginas || Ver o tópico PesquisaDePáginas ||
||||||{{{[[FullSearch()]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Devolve uma lista de páginas cujo conteúdo coincida com o título da página actual (como clicar no título da página) || Ver a página ListaDeCategorias ||
||||||{{{[[FullSearch(text)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Devolve uma lista de páginas cujo conteúdo coincida com o termo de pesquisa || ||
||||||{{{[[FullSearchCached(text)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Funciona como a macro {{{FullSearch}}} mas guarda os resultados estatisticamente. Utilize-o se preferir resultado actualizado mais rápido || ||
||||||{{{[[GoTo]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Visita directamente a página que inserir || Ver o tópico PesquisaDePáginas ||
||||||{{{[[PageList(Help)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Devolve uma lista de páginas cujo título coincida com o termo de pesquisa || Ver o tópico ÍndiceDeAjuda ||


=== Navegação ===
||||||'''Macro''' ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> '''Descrição''' ||'''Exemplo''' ||
||||||{{{[[RecentChanges]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Uma lista de páginas editadas recentemente || Ver o tópico AlteraçõesRecentes||
||||||{{{[[TitleIndex]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Um índice de todos os títulos das páginas || Ver o tópico ÍndiceDePáginas ||
||||||{{{[[WordIndex]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Um índice de todas as palavras existentes nos títulos das páginas || Ver o tópico ÍndiceDePalavras ||
||||||{{{[[WantedPages]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Lista as ligações de páginas inexistentes || Ver o tópico PáginasPretendidas ||
||||||{{{[[OrphanedPages]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Lista as páginas que não têm ligações (noutras páginas) que apontem para si || Ver o tópico PáginasOrfãs ||
||||||{{{[[AbandonedPages]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Lista as páginas que não são editadas há mais tempo || Ver o tópico PáginasAoAbandono ||
||||||{{{[[RandomPage]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Uma ligação para uma página ao acaso || <<RandomPage>> ||
||||||{{{[[RandomPage(#)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Ligações para um conjunto de páginas ao acaso || Duas páginas ao acaso:<<RandomPage(2)>> ||
||||||{{{[[TableOfContents([maxdepth])]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Apresenta uma tabela de conteúdos, possivelmente limitada a uma profundidade máxima || Ver em cima||
||||||{{{[[Anchor(anchorname)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Macro para inserir âncoras numa página || <<Anchor(aqui)>>#aqui ||
||||||{{{[[Navigation(children[,maxdepth])]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Macro para listas todas as sub-páginas || Ver início desta página ||
||||||{{{[[Navigation(siblings[,maxdepth])]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Navegação rápida entre páginas irmãs de uma página || Ver o sub-tópico /MailTo ||
||||||{{{[[Navigation(slideshow)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Cria uma ligação para alternar entre a apresentação de diapositivos e o modo wiki, e uma ligação para iniciar a apresentação de diapositivos || Ver o tópico AjudaComApresentaçõesDeDiapositivos ||
||||||{{{[[Navigation(slides)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Apresenta as ligações de primeira página/página anterior/página seguinte/última página || Ver o tópico AjudaComApresentaçõesDeDiapositivos ||
||||||{{{[[AttachInfo]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Apresenta o número de anexos na página actual || Ver o tópico AjudaNasAcções/AttachFile ||
||||||{{{[[AttachInfo(page)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Apresenta o número de anexos por página || Ver o tópico AjudaNasAcções/AttachFile ||
||||||{{{[[AttachList(pagename,mimetype)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Apresenta uma lista de anexos || Ver o tópico AjudaNasAcções/AttachFile ||

=== Informação de sistema ===
||||||'''Macro''' ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> '''Descrição''' ||'''Exemplo''' ||
||||||{{{[[InterWiki]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Uma lista de todos os nomes de LigaçõesEntreWikis conhecidos || LigaçõesEntreWikis ||
||||||{{{[[SystemInfo]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Dados sobre o wiki, o interpretador de python e o sistema do servidor || [[SystemInfo|InformaçãoDeSistema]] ||
||||||{{{[[PageCount(exists)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Número actual de páginas. Se {{{exists}}} é devolvido como um argumento. Apenas as páginas existentes serão exibidas. || <<PageCount>> páginas||
||||||{{{[[PageSize]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Lista o tamanho de todas as páginas || Ver o tópico TamanhoDaPágina ||
||||||{{{[[StatsChart(type)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Exibe gráficos estatísticos (tipos definidos actualmente: hitcounts, pagesize, useragents) || Ver o tópico EstatísticasDeAcesso e sub-páginas ||
||||||{{{[[SystemAdmin]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Informação para administradores de sistemas || Necessita de ser um super utilizador para chamar esta macro <<BR>> <<SystemAdmin>> ||
||||||{{{[[EditedSystemPages]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Uma lista de páginas de sistema que foram alteradas || <<EditedSystemPages>> ||

=== Outras ===
||||||'''Macro''' ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> '''Descrição''' ||'''Exemplo''' ||
||||||{{{[[ImageLink(image,target[,width=width[,height=height]][,alt=alttag])]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Esta macro é utilizada para criar uma ligação que exibe uma imagem (que pode ser apresentada como anexo ou URL) e ligações para um URL ou uma página wiki. Pode ajustar o tamanho da imagem opcionalmente. Se não for definido nenhum destino, a ligação apontará para a própria imagem. || Ver o sub-tópico /ImageLink ||
||||||{{{[[Icon(image)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Exibe os ícones de sistema || Ver o tópico AjudaNaNavegação ||
||||||{{{[[UserPreferences]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Exibe um diálogo de preferências do utilizador || Ver o tópico  PreferênciasDoUtilizador ||
||||||{{{[[UserPreferences(createonly)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Exibe um diálogo de criação de utilizadores || ||
||||||{{{[[BR]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Insere uma quebra de linha || 1ª linha<<BR>>2ª linha ||
||||||{{{[[RandomQuote(pagename)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Seleccione uma citação ao acaso de uma determinada página, ou a partir dos {{{FortuneCookies}}} em caso de omissão || <<RandomQuote>> ||
||||||{{{[[Include(HelloWorld[,"heading"[,level]])]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Inclui conteúdos de outra página || Para mais informações, consulte [[/Include]] ||
||||||{{{[[FootNote(text)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Adicione uma nota de rodapé<<FootNote(o texto não pode ter nenhuma formatação de wiki)>>, ou apresente explicitamente notas de rodapé recolhidas quando não são fornecidos argumentos || Ver exemplo em baixo. ||
||||||{{{[[Date(timestamp)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Apresenta uma data de acordo com as configurações de sistema || <<Date>> ||
||||||{{{[[DateTime(timestamp)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Apresenta uma data<<FootNote("timestamp" pode ser vazia (hora actual), o número de segundos desde 1970 (unix timestamp), ou uma especificação de tempo W3C ("2002-01-23T12:34:56"). Ver RFC822, secção 5. )>> de acordo com as configurações do utilizador || <<DateTime>> ||
||||||{{{[[GetText(text)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Carrega os textos I18N (criado especialmente para ser utilizado nas páginas de Ajuda) || "Edit``Text" é traduzido para "<<GetText(EditText)>>" ||
||||||{{{[[GetText2(,message,argument1,argument2,...)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Carrega os textos I18N (criado especialmente para ser utilizado nas páginas de Ajuda ou em resultado gerado em páginas wiki) e substitui o `%s` na mensagem pelos argumentos. O primeiro carácter do argumento é utilizado como um separador (neste exemplo: uma vírgula). Pode evitar o separador utilizando uma barra ("\"). || "`[[GetText2(,[Pode não ler %s],FooBar)]]`" resulta em "<<GetText2(,[Pode não ler %s],FooBar)>>" ||
||||||{{{[[TeudView]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Útil para wikis de desenvolvimento em intranets, uma forma de visualizar documentação pydoc, formatada através de uma folha de cálculo XSLT || Ver a página http://twistedmatrix.com/wiki/python/TeudProject ||
||||||{{{[[MailTo(email)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Protege o seu endereço de correio electrónico de robôs de spam || para mais informações consulte /MailTo ||
||||||{{{[[NewPage(PageTemplate,ButtonLabel,[ParentPage,@ME,@SELF] [,NameTemplate])]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Permite ao utilizador criar (sub) páginas facilmente, utilizando a página {{{PageTemplate}}} como modelo para a nova página e a string {{{NameTemplate}}} como modelo para o nome.<<FootNote(`NameTemplate` é formatada com `time.strftime()`, à excepção do `%s` que é substituído pela entrada da caixa de edição (que apenas será exibida se necessário). Se `NameTemplate` não for especificada ou estiver vazia, `%s` é o seu valor por omissão.)>> `@ME` é utilizado para a página criada estar abaixo da página principal dos utilizadores. `@SELF` é utilizado para criar uma sub-página debaixo da página de onde é chamada. || <<NewPage(ModeloDeCategorias, Criar nova categoria,,Categoria%s)>> ||
||||||{{{[[GetVal(NeatSnippets,regards)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Pesquisa registos de dicionário entre as páginas dict. || Se tiver uma página com o título PortugueseDict que contenha o registo ''Test: <<GetVal(PortugueseDict,Test)>> ||
||||||{{{ [[MonthCalendar(,,12)]]}}} ||
||<5%><<BR>>||<75% style="margin: 10px; vertical-align: top;"> Apresenta um Calendário e cria ligações para registos de cada dia em sub-páginas || Ver o sub-tópico /MonthCalendar ||
<<FootNote>>

=== Criar a sua própria macro ===
Crie um ficheiro python chamado {{{NomeDaMacro.py}}} localizado na sua directoria {{{data/plugin/macro}}}. Certifique que tem um método único chamado {{{execute(macro, arguments)}}}, que é o ponto de partida.

 * ''macro'' é uma instância de classe Macro, e também avalia uma string do nome da macro.
 * ''arguments'' é uma string de argumentos arbitrários que pode inserir nos parâmetros da sua macro.
Todas as instâncias {{{Macro}}} têm um membro {{{request}}} através do qual pode aceder aos parâmetros e a outros dados relacionados à interacção do utilizador.

{{{execute()}}} deve utilizar um editor para construir formatação válida para o formato-alvo actual. Regra geral, isto significa HTML, assim criar uma macro apresentada em HTML funcionará na maioria dos casos, mas falhará caso sejam solicitados formatos como XML ou {{{text/plain}}} are requested.

Por exemplo, a sua página de wiki inclui a seguinte linha:

{{{
[[MacroName(arg1,arg2,arg3)]]
}}}
Pode editar um ficheiro !NomeDaMacro.py assim:

{{{
#!python
Dependencies = []
def execute(macro, args):
    return macro.formatter.text("I got these args from a macro %s: %s" %
    (str(macro), args))
}}}
 . /!\ Adicione um registo nas {{{Dependencies}}} caso o resultado da sua macro não deva ser armazenado. Isto é importante se o resultado da sua macro for alterada de um momento para o outro, por exemplo, se a sua macro pesquisar entre as páginas de um wiki pode ser editada por outros utilizadores, ou carregar dados de uma base de dados externa cujos conteúdos podem mudar. Actualmente, o valor de cada registo não interessa e aconselhamos que faça uma pequena descrição para explicar o motivo 'por que os resultados desta macro não devem ser armazenados', mas por favor, dê uma vista de olhos aos registos utilizados noutras macros para valores que possam ser adequados.
<<FootNote>>
