Desenvolvendo Aplicações Web com TWiki

Start Presentation

Slide 1:  

Desenvolvendo Aplicações Web com TWiki

ou

o que dá pra fazer no TWiki

Antonio S. de A. Terceiro
<asaterceiro@inf.ufrgs.br>

Slide 2: O TWiki pelo seu criador

"TWiki is a leading-edge, web-based collaboration platform targeting the corporate intranet world. TWiki
  • fosters information flow within an organization
  • lets distributed teams work together seamlessly and productively
  • eliminates the webmaster syndrome of outdated intranet content"
Peter Thoeny, autor original do TWiki.

Slide 3: De outra forma ...

  • uma ferramenta para escrita colaborativa de conteúdo (conhecimento).
  • uma ferramenta de gerenciamento de conteúdo free form.
  • uma ferramenta de acompanhamento de processos (workflow).
  • uma plataforma para desenvolvimento de aplicações.

Slide 4: básico : editar/preview/salvar

  • *negrito* = negrito, _itálico_ = itálico.
  • WikiName?'s
  • UmOutroTopico?
  • mil outras regras de formatação

  • Preview

Slide 5: básico : anexar

  • arquivo de qualquer tipo
  • referências aos arquivos: %ATTACHURL%/nome.ext
  • resultados expressivos quando combinados com alguns plugins

Slide 6: básico : revisões

  • RCS
  • quem alterou
  • o quê alterou
  • quando alterou
  • desfazer

Slide 7: WabiSabi?

  • Tudo é efêmero.
  • Tudo é impefeito (sic).
  • Tudo é incomplet (sic).

Características:

  • Sugestão de processo natural
  • Irregular
  • Intimista
  • Despretensioso
  • Terreno
  • Simples

Desprendimento

Slide 8: básico : variáveis

  • %ICON{"type"}%: pdf, zip, xml, mp3
  • %SERVERTIME{"format"}%: 22:48:29
  • %GMTIME{"format"}%: 01:48:29
  • %INCLUDE%
  • %WIKIUSERNAME% : WikiGuest
  • %WEB%: Foswikibr
  • %TOPIC%: DesenvolvendoAplica?çõesWebComTWiki

Slide 9: não-tão-básico : SEARCH

%SEARCH{"Plugin$" scope="topic"
         regex="on"
         web="TWiki"
         nototal="on"
         nosearch="on"
         format="   * $web.$topic"}%

Slide 10: n-t-b : TWikiForms?

  • formulários
  • Pares Nome = Valor
  • Tipos de campo:
    • checkbox, radio, select, text, textarea etc
  • uma aplicação: metadados

Slide 11: n-t-b : SEARCH + Formulários

Slide 12: indo além : Skins

  • sistema de templates
  • um skin é um conjunto de templates
    • view
    • preview
    • search
    • etc

Slide 13: uma possível aplicação

  • diferente da aplicação trivial

  • skin "form-only"
  • formulário(s)
  • SEARCH

Slide 14: Desenvolvendo: skins

  • TWikiSkins?
  • TWikiTemplates?
    • mestre
    • HTML
      • por ação
    • tópicos modelo

Slide 15: uma skin: FreeSkin

%INCLUDE{"FreeSkinPreTopic"}%
%TEXT%
%INCLUDE{"FreeSkinPosTopic"}%

Slide 16: indo além: plugins

  • estendem as regras de formatação
  • funcionalidades especiais/adicionais
  • aplicações inteiras

Slide 17: BeautifierPlugin?

OBS: Obsoleto

%CODE{"perl"}%
  if (not (-e $fromFilename))
  { 
    return SvgPluginError("can't find ...");
  }

  my $svgAge = (-M $fromFilename);
  my $pngAge = (-M $toFilename);
%ENDCODE%

Slide 18: BibliographyPlugin?

You start writing, and then cite a small paper %CITE{small}%. Further,
you reference a big paper %CITE{big}%. You can even reference the small
paper again %CITE{small}%.

%BIBLIOGRAPHY{}%

You start writing, and then cite a small paper %CITE{small}%. Further, you reference a big paper %CITE{big}%. You can even reference the small paper again %CITE{small}%.

%BIBLIOGRAPHY{}%

Slide 19: ChartPlugin?

| dados | dados | dados |
| dados | dados | dados |
| dados | dados | dados |
| dados | dados | dados |

%CHART{table="1" ... type="area"}%

areaexample.png

Slide 20: SlideShowPlugin?

Slide 21: SpreadSheetPlugin?

Idade Peso
20 70
30 80
40 66
Média: 30 Soma: 216

%CALC{"$AVERAGE( $ABOVE() )"}%

%CALC{"$SUM( $ABOVE() )"}%

Slide 22: SvgPlugin?

De:
<?xml version="1.0" encoding="UTF-8"
      standalone="no"?>
<!DOCTYPE svg PUBLIC ...>

Para:
%SVG{"TWikiBrasil.svg" topic="LogoTipo" size="150x150"}%



%SVG{"TWikiBrasil.svg" topic="LogoTipo" size="150x150"}%

Slide 23: Desenvolvendo : plugins

  • motor de renderização
  • "ganchos"
    • initPlugin
    • commonTagsHandler
    • startRenderingHandler
    • etc
  • TWikiPlugins?
  • TWikiFuncModule?

Slide 24: Um exemplo

sub commonTagsHandler
{
### my ( $text, $topic, $web ) = @_;
# do not uncomment, use $_[0], $_[1]... instead
    
  TWiki::Func::writeDebug(
     "- ${pluginName}::commonTagsHandler( $_[2].$_[1] )"
  ) if $debug;
    
  # do custom extension rule, like for example:
  # $_[0] =~ s/%XYZ%/&handleXyz()/ge;
  # $_[0] =~ s/%XYZ{(.*?)}%/&handleXyz($1)/ge;
   
  $_[0] =~ s/%SVGG{(.*?)}%/&handleSvg($1,$_[1],$_[2])/ge;
   
}

Slide 25: Quem usa esse troço?

Slide 26: Conclusões

%SVG{"TWikiBrasil.svg" topic="LogoTipo" size="300x300"}%

-- AntonioTerceiro - 28 Oct 2004

Topic revision: r7 - 04 Aug 2009 - 17:01:07 - ItaloValcy
 
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-SL? Send feedback