Formulários TWiki
Entrada de dados form-based em tópicos, com o par nome/valor armazenado como variáveis Meta Dados; escolha um dos múltiplos formulários por Web & tópico
Visão Geral
Com a criação de entradas
form-based para um conteúdo de freeform, você pode estruturar tópicos com categorias ilimitadamente pesquisáveis, facilmente. Quando os formulários são habilitados para uma Web e selecionados em um tópico, um formulário simples aparece no modo de edição, a os conteúdos são organizados como uma tabela quando visualizados pela página no modo normal. Pode-se definir um número ilimitado de formulários para uma Web. Para cada tópico, você pode selecionar um padrão se mais de um formulário estiver definido, ou remover os formulários inteiramente. Valores inseridos através dos formulários são armazenados como
TWikiMetaData; todos os dados são salvos.
Moldes de Formulários substituem TWikiCategoryTables da versão de 01-Dez-2000 do TWiki.
Mudanças principais de Tabelas de Categoria
Um Molde de Formulário é uma substituição mais poderosa e flexível para a TWikiCategoryTable original. Dados existentes no antigo formato de Category Tables podem ser importados diretamente.
| Moldes de Formulário |
Tabelas de Categoria |
| definidos em tópicos |
definidos em moldes |
| muitos formulários por Web |
uma tabela por Web |
| salvos como Meta Dados |
salvos como HTML |
| botões Change & Add Form |
botões de rádio UseCategory |
Importando dados de Tabelas de Categoria (Category Table)
Ao fazer o
upgrade de uma versão anterior do TWiki, um molde de formulário tem que ser criado para cada Web que utilizava uma Tabela de Categoria, recriando os campos e os valores do antigo
twikicatitems.tmpl. A substituição para Formulário deve ser definida como o primeiro item na variável
WEBFORMS em
WebPreferences. Se ela estiver faltando, as páginas aparecerão, mas as tentativas de edição resultarão em uma mensagem de erro.
O novo sistema de formulários deve trabalhar com o dados da antiga Tabela de Categoria sem nenhuma conversão especial. Dados são convertidos para variáveis Meta Dados na primeira vez que um tópico que as importa é editado e salvo no novo sistema.
NOTA: Se as coisas não estão funcionando corretamente, pode haver informações úteis em
data/warning.txt.
Definindo um Molde(Template) de Formulário
Um Molde de Formulário é uma simples página contendo seu formulário, definido como uma tabela onde cada linha é um campo.
Elementos de um Molde(Template) de Formulário
- Molde de formulário - uma seleção de campos definindo um formulário (substitui tabela de definição de categoria)
- Uma web pode usar um ou mais moldes de formulário
- formulário - um tópico contendo meta dados adicionais (além do TEXTAREA freeform) que categoriza o conteúdo (substitui tabela de definição de categoria)
- Em uma web com formulários habilitados, tópicos individuais podem ter um ou nenhum formulário
- campo de formulário - um item nomeado em um formulário (substitui nome de item de categoria)
- tipo de campo - seleciona o tipo de entrada:
- select - um menu deslizante (drop-down) ou uma caixa de seleção rolável
- checkbox - uma ou mais caixas de seleção
- checkbox+buttons - uma ou mais caixas de seleção, com os botões Set (marcar) e Clear (apagar)
- radio - um ou mais botões de rádio
- text - um campo de texto de uma linha
- textarea - uma caixa de texto; o tamanho é definido como 40x10 (colunas x linhas)
- valor do campo - um ou mais valores para um grupo fixo (tipos select, checkbox e radio) ou texto livre de formulário. (substitui nome de item de categoria)
Definindo um Formulário em um tópico
- Crie um novo tópico para o nome de seu formulário:
YourForm, ExpenseReport, InfoCategory, RecordReview, o que quer que você precise.
- Crie uma tabela TWiki, com o cabeçalho de cada coluna representando um elemento de um campo de entrada:
Nome, Tipo, Tamanho, Valores, e ==mensagem Tooltip (veja exemplo abaixo).
- Para cada campo, preencha uma nova linha; para o tipo do campo, selecione da lista.
- Salve o tópico (você pode escolher habilitar/desabilitar formulários individuais mais tarde)
Exemplo: WebForm
| *Nome* | *Tipo* | *Tamanho* | *Valores* | *Mensagem Tooltip* |
| Know.TopicClassification | select | 1 | Know.NoDisclosure,
Know.PublicSupported, Know.PublicFAQ | blah blah... |
| Know.OperatingSystem | checkbox | 3 | Know.OsHPUX, Know.OsLinux,
Know.OsSolaris, Know.OsWin | blah blah... |
| Know.OsVersion | text | 16 | | blah blah... |
Definindo um formulário com múltiplos tópicos
Formulários podem ser definidos para usar Moldes que retornem valores de campos de um ou mais tópicos separados:
- Um tópico
FormTemplate define o Formulário, ex: YourFormTemplate.
- Para cada campo que tem uma lista de valores - select, radio, checkbox - pode-se usar tópicos separados que definem os valores disponíveis.
Exemplo: WebFormTemplate
- Know.WebFormTemplate main definition:
Deixe o campo Valores em branco.
- Know.TopicClassification difinição de valor de campo:
- Notas de Implementação: Esse formato permite que você defina items de campos com ou sem WikiNames, dependendo de suas necessidades.
- Tópicos podem ser protegidos da maneira usual, usando TWikiAccessControl, para limitar quem pode mudar o molde de formulário e/ou listas de valores individuais.
-
[[...]] links podem ser usados para forçar um link (no momento, o formato [[...][...]] não é suportado).
- A coluna
Tooltip message é usada como uma tooltip para o nome de campo (somente se o nome de campo for uma WikiName) - você apenas vê o tooltip ao editar.
- O primeiro item na lista é o item padrão. Valores iniciais alternativos podem ser definidos em um molde de tópico, como
WebTopicEditTemplate, com field=value, ou, para checkboxes, field=1.
- A definição de um tópico não é lida quando um tópico é visto.
Habilitando Formulários pela Web
Formulários são habilitados em uma per web basis. A variável
WEBFORMS em
WebPreferences é opcional e difine uma lista de possíveis moldes de formulários. Exemplo:
- Set WEBFORMS = BugForm, FeatureForm, BookLoanForm
- Com
WEBFORMS habilitado, um botão extra é adicionado a edit view. Se um tópico não possuir um Formulário, um botão Add Form aparecerá ao fim do tópico. Caso haja um formulário, um botão Change aparecerá na coluna de cima do formulário. Os botões abrem uma tela que permite a seleção de um formulário especificado em WEBFORMS, ou a opção No form.
Incluindo Formulários em Tópicos Novos
- Um Molde padrão de Formulário (novos tópicos recebem esse formulário padrão) podem ser providenciados criando o tópico
WebTopicEditTemplate em uma Web e adicionando um formulário a ele. Valores iniciais de formulários podem ser definidos ali.
- Adicionalmente, um novo tópico pode receber um formulário usando o parâmetro
formtemplate na URL. Valores iniciais podem ser providenciados nas URLs ou como valores de formulários:
- outros além de checkboxes:
name, ex: ?BugPriority=1
- checkbox:
namevalue=1, ex: ?ColourRed=1.
Caixas com um tick devem ser especificadas.
Definindo Múltiplas Opções de Formulários
- A variável opcional
WEBFORMS define formulários alternativos que podem ser selecionados pressionando Change no modo de edição.
- Um molde de tópico pode usar qualquer formulário.
- Novos tópicos com um formulário são criados por simples formulários HTML perguntando por um nome de tópico. Por exemplo, você pode ter um tópico
SubmitExpenseReport onde você possa criar novos expense reports, um tópico SubmitVacationRequest, e assim por diante. Estes podem especificar os moldes de tópico requeridos com seus formulários associados.
Armazenamento de dados dos Formulários
O nome do tópico do formulário, campos e valores são armazenados como
TWikiMetaData - a ordem dos pares campo/valor é a mesma definida no molde de formulário.
Usandos dados dos Formulários
TwikiForms? aceitam dados fornecidos por usuários, armazenados como
TWikiMetaData. Meta dados também contêm informações geradas automaticamente sobre alterações, arquivos anexados, etc. Para encontrar, formatar e exibir formulários ou outro meta dado, veja
TWikiMetaData, e as variáveis
SEARCH e
METASEARCH no tópico
TWikiVariables, e
TWiki Busca Formatada para várias opções.
--
JohnTalintyre? - 16 Aug 2001
-
-
MikeMannix - 05 Jan 2002