Colivre

Foswiki Avançado

Novato? Veja também o Tutorial Foswiki.

Instalando o Foswiki

Essa orientação é voltada para servidores Debian GNU/Linux. Para mais detalhes leia a documentação no site oficial do Foswiki.

  1. Adicione o repositório do Foswiki no seu /etc/apt/source.list
    deb http://fosiki.com/Foswiki_debian/ stable main contrib
  2. Instale o Foswiki, pelo gerenciador de pacotes do Debian:
    apt-get update && apt-get install apache2 foswiki
  3. Busque (e instale) plugins do Fowsiki:
    aptitude search foswiki
  4. Seu site pode ser configurado editando /etc/foswiki/LocalSIte.cfg, mas é fortemente recomendável que você acesse http://localhost/foswiki-path/bin/configure
  5. Apesar da conta admin estar devidamente configurada, é aconselhável adicionar o seu WikiName ao AdminGroup.

Ok! O Foswiki está pronto para uso.

Instalando Extensões (Plugins)

Você pode (e deve) instalar extensões do Foswiki pelo gestor de pacotes do Debian, mas, para buscar, é mais fácil usar esta página: http://foswiki.org/Extensions

Caso queira é possível instalar as extensões manualmente. A página da extensão contem documentação sobre uso e instalação. Basicamente você adiciona os executáveis em .../lib/Foswiki/Plugins/ e a documentação em .../data/System/.

Extensões interessantes:

Algo a mais sobre Notificação

O e-mail de notificação de modificação das páginas é lançado pelo script mailnotify. Entre no diretório raiz da instalação do Foswiki e execute:
perl -I bin tools/mailnotify
Neste momento você enviará notificações de todas as modificações feitas desde a última execução deste script para todos os inscritos em todas as webs.

Esse script aceita argumentos pela linha de comando para modificar sua forma de trabalho e filtrar webs.

Formas de cadastro no WebNotify

Pode-se cadastrar usuários, grupos ou simplesmente e-mails no WebNotify, cada um como item de uma lista. É possível informar ao Foswiki sobre quais tópicos desejamos ser notificados, incluindo ou excluindo tópicos com ajuda do coringa *. Com os simbolos ! e ? informamos a necessidade do envio do conteúdo completo dos tópicos marcados.

Exemplo Descrição
DaisyCutter Todas as modificações da web para um usuário cadastrado
FlowersGroup Todas as modificações da web para um grupo
daisy.cutter@flowers.com Todas as modificações da web para um e-mail
DaisyCutter: Noticia* Modificações apenas sobre tópicos iniciados por Noticia
DaisyCutter: Noticias (1) Modificações apenas sobre o tópico Noticias e seus filhos imadiatos
DaisyCutter: *Flower (3) ... tópicos finalizados com Flower e seus filhos até o terceiro nível
StarTrekFan: Star* - *Wars ... tópicos iniciados com Star excluindo os finalizados com Wars
DaisyCutter: NewsLetter? Envia todo o conteúdo de NewsLetter para Daisy, caso tenha sido modificado
DaisyCutter: NewsLetter! Envia todo o conteúdo de NewsLetter para Daisy, mesmo sem ter sido modificado

Mais informações em MailerContrib.

Interfaces personalizadas para funcionalidades do Foswiki

Veja CommandAndCGIScripts para conhecer os scripts da instalação padrão.

O importante é apontar o script corretamente e entregar cada parâmetro, seja via GET ou POST.

Use a macro SCRIPTURL para garantir o apontamento correto: %SCRIPTURL{script}%
Se algo mudar no path do seu serviço, esta macro fará seu link ou form continuar funcionando.

Muitos scripts precisam rodar no contexto de um tópico. Podemos informar o tópico para esses casos adicionando Web/Tópico após o SCRIPTURL, ou enviamos o tópico via GET ou POST. Exemplos:
  • URL completa: %SCRIPTURL{script}%/Web/Tópico
  • Via GET: %SCRIPTURL{script}%/Web?topic=Tópico
  • Via POST:
       <form action="%SCRIPTURL{script}%/Web">
         <input name="topic" value="Tópico" />
       </form>
       

Criando um Botão para Editar o Tópico Atual

<a href="%SCRIPTURL{edit}%/%WEB%/%TOPIC%" rel="nofollow">Edit</a>

Adicionando Elementos na Interface Padrão

Para adicionar o botão que gera PDF do tópico visitado, crie o tópico MinhaTemplate com o seguinte conteúdo:
%TMPL:INCLUDE{"view"}%

%TMPL:DEF{"top:toolbarbuttons"}%
<span><a href="%SCRIPTURL{genpdf}%/%WEB%/%TOPIC%?t=%GMTIME{$epoch}%" \
rel="nofollow" title="Baixar versão PDF deste tópico" accesskey="p">\
<span class="foswikiAccessKey">P</span>DF</a></span>
%TMPL:P{"activatable_edit_or_create"}%%TMPL:P{"activatable_attach"}%%TMPL:END%
...e adicione a seguinte variável em Main.SitePreferences:   * Set VIEW_TEMPLATE = Minha

O bloco top:toolbarbuttons já existia e é parte da template padrão incluída em MinhaTemplate. Redefinimos este bloco para colocar o botão "PDF" ao lado do "Edit" e "Attach" no topo da página.

Criando Tópicos Automaticamente

O Foswiki já lhe provê facilidades para criação de tópicos a partir de WikiWords sem tópicos. O interessante é poder criar nomes dinamicamente e até saltar a fase de edição dependendo da necessidade, para isso use os conhecimentos do tópico anterior. Podemos criar tópicos automaticamente de três formas: pedindo que o usuário informe um nome, usando auto incremento ou sufixando o valor de uma variável como a GMTIME.

Pedindo que o usuário informe o nome:

Crie um tópico a partir da submissão de um form, como vimos anteriormente. O usuário deverá adicionar o nome do novo tópico no campo de texto.

Via auto-incremento:

Referencie um tópico finalizado com AUTOINC<n> para o script edit ou save e estes criarão um novo tópico onde AUTOINC<n> será substituído pelo primeiro número inteiro positivo não usado.
  • BugAUTOINC0 >> Bug0, Bug1, Bug2, ..., Bug10, Bug11, ...
  • RegAUTOINC000 >> Reg000, Reg001, Reg002, ..., Reg010, Reg011, ...

Exemplo:
[[%SCRIPTURL{edit}%/Web/TópicoAUTOINC0][Novo Tópico]]

Sufixando o valor de uma variável de valor dinâmico:

[[%SCRIPTURL{edit}%/Web/Noticia%GMTIME{$year$mo$day}%][Nova Notícia]]

Expressões Regulares

A orientação se baseia no material de Aurélio Jargas: http://guia-er.sourceforge.net

Use o form abaixo para testar suas expressões:

Criando WikiApplications

Já dissemos o que são WikiApplications no Tutorial Foswiki, então acompanhe a prática que se baseará no conhecimento dos tópicos anteriores.

Ajax

Já existem várias extensões para usos variados de Ajax no Foswiki.

O Foswiki pode gerar qualquer gênero de informação textual, então se quiser criar sua própria busca baseada em Ajax, seria uma boa idéia gerar a resposta em JSON. Veja um exemplo de tópico que pode gerar respostas formatadas para buscas variadas:
{
%SEARCH{
"%URLPARAM{"search" encode="quote"}%"
web="%URLPARAM{"web" default="all" encode="quote"}%"
topic="%URLPARAM{"topics" default="*" encode="quote"}%"
excludetopic="%URLPARAM{"exclude" encode="quote"}%"
type="regex"
nonoise="on"
separator=",$n"
format="  '$web.$topic' : %URLPARAM{"format" default="$quot$date$quot" encode="quote"}%"
}% }
/*
   * Set SKIN = text
*/
(O tópico deve conter apenas isso. Caso quera alguma descrição, coloque-a em um comentário javascript)
Topic revision: r17 - 28 Apr 2014, AurelioAHeckert
 

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki-Colivre? Send feedback