Jump to Navigation

Blog

seg, 27/10/2008 - 15:31

Drupalwikizando a metareciclagem

Demorei pra documentar as soluções que encontrei pra algumas coisas que a gente quer fazer com esse site. Como foram um monte de coisinhas, resolvi documentar em partes. Hoje vou falar sobre como montei o wiki aqui (que é basicamente o mesmo processo que eu fiz no mutirão da gambiarra).

PS pra muita gente esse post vai parecer grego. Desculpem, e se quiserem saber mais é só me perguntar.

O drupal não tem um só módulo consistente de wiki. A solução que pareceu melhor pra mim foi usar um pouco das funcionalidades do core do drupal com alguns módulos adicionais:

  1. Criei um nodetype chamado "wiki". Em outros sites, eu tinha usado o módulo book, mas ele tem algumas coisas que incomodam, principalmente a hierarquia simples. Uma das idéias mais interessantes de wiki é justamente que as hierarquias de conteúdo são cambiantes, eu posso referenciar uma ou mais estruturas a partir de qualquer página. Leva ao caos, mas pra mim isso 'is a feature, not a bug'. Nesse sentido, usar um tipo de conteúdo simples dá um pouco mais de versatilidade. Nas opções padrão do wiki, escolhi que ele seja publicado direto (published) e que crie revisões (ou seja, cada vez que uma pessoa edita uma página aparece o campo de revision, para logar as diferenças). Ativei o uso de anexos, optei por não usar o nodetype como evento, e escolhi o uso como "WIki group post". Ou seja, qualquer usuárix do grupo onde a página foi criada pode editá-la.
  2. No controle de acesso, habilitei qualquer usuárix registradx a criar e editar qualquer página de wiki (permissões create, edit own e edit wiki content).
  3. Instalei o módulo freelinking. Ele é em essência um filtro que verifica no texto de qualquer página ocorrências de camel case (duas palavras justapostas iniciando por maiúsculas) ou palavras entre colchetes duplos, e cria links para elas. O módulo permite limitar o filtro a um nodetype específico (o que eu não fiz), e dá opções sobre quais tipos de conteúdo podem ser criados. Aqui na rede metareciclagem, eu queria que um link desses no texto de qualquer tipo de conteúdo só criasse páginas de wiki, então selecionei o padrão para novo conteúdo com o nodetype wiki.
  4. Instalei o módulo wikitools, que dá algumas opções: configurar o path do wiki, o nome/título da página inicial do wiki, escolher quais tipos de conteúdo serão usados como wiki (o que influencia na opção padrão do módulo freelinking), e dá mais uma série de pequenas opções. Habilitei a opção "hijack freelinking filter", que substitui o filtro do freelinking e dá umas opções a mais. Ativei os sufixos de URL, coisa que só eu devo usar.
  5. Mexi na configuração do pathauto para ele não minuscular as URLs de páginas com títulos em maiúscula. Em "node path settings", fiz ele usar o prefixo wiki para páginas de wiki.
  6. Criei duas views: uma para as mudanças recentes (a conhecida recent changes) de páginas de wiki, e outra com uma lista alfabética de páginas de wiki.
  7. Instalei o módulo diff para poder visualizar as últimas alterações de qualquer página.

Com isso já tinha um wiki funcional. Mas como a idéia desse site é justamente acrescentar algumas camadas organizacionais em cima do wiki (se não fosse assim, eu tinha simplesmente usado um wikka ou wikipedia), resolvi estender um pouco a integração do wiki com o módulo organic groups. Eu já tinha configurado a homepage de qualquer grupo (aqui na rede, os tipos de conteúdo conectaz e esporo são grupos) para serem exibidas como panels, criando uma panel page chamada grupo_home com o caminho node/% e adicionando nas confuigurações do panel um argumento "node id". Para criar um box dentro do panel com as últimas páginas de wiki, precisei criar um views pane:

  1. Clonei a view com a lista de últimas modificações no wiki e chamei-a de og_lista_wiki. Adicionei a ela um argument chamado OG: group nid(s). Salvei.
  2. Na página de views panes, mandei criar um panel view a partir do og_lista_wiki.
  3. Nas configurações do panel grupo_home, na aba "conteúdo" (que por sinal fica escondida com esse theme aqui) cliquei no + para adicionar um pane e já estava listado ali "página de wiki" na categoria "views".

Feito. A partir daí deve ter rolado mais algum pequeno ajuste que não lembro mais, mas em essência é isso.

  1.  

 

2324 leituras blog de felipefonseca