Elgg

De WikiPapagallis

Elgg é uma plataforma de código aberto (open source) para redes sociais que inclui blog, comunidade, notícas por RSS agregado e compartilhamento de arquivos. Todo o conteúdo por ser compartilhado e organizado pelos os usuários através de tags.

Elgg tem licença de uso GPL e roda sobre um servidor LAMP (Linux, Apache, MySQL, and PHP). Pode ser integrado com MediaWiki, Moodle, Drupal, e WebCT, além de contar com plugins para wiki e calendário.

Conteúdo

[editar] O Modelo de Dados do Elgg

No Elgg, tudo funciona sob um modelo de dados unificado, baseado em unidades atômicas chamadas entidades. Plugins são fortemente desencorajados de serem distribuídos com databases próprios, o que torna o sistema mais estável trazendo visíveis benefícios ao usuário final. O conteúdo criado por diferentes plugins podem ser misturados através de formas consistentes, que são programadas usando princípios genéricos - em outras palavras, plugins são mais rápidos de serem desenvolvidos e são ao mesmo tempo muito mais poderosos.

Toda entidade no sistema herda a classe ElggEntity. Isto permite controle de acesso, de posse e assim por diante. Elgg permite a você rodar multiplos sites na mesma instalação, então ele gravará o site e cada elemento que pertencer a ele.

[editar] Usuários, sites, objetos e grupos

ElggEntity tem 4 especializações, cada qual provê propriedades extras e métodos que facilitam a manipulação dos diferentes tipos de dados.

  • ElggObject - Objetos como posts de blogs, arquivos e favoritos.
  • ElggUser - Todos os usuários do sistema.
  • ElggSite - Todos os sites de uma mesma instalação.
  • ElggGroup - Sistemas colaborativos de multi-usuários que eram chamados "Communities" em versões anteriores do Elgg.

O benefício de uma abordagem como essa, fora a modelagem de dados mais simpĺes, é o conjunto de funções para manipulação dos objetos sem levar em conta os seus subtipos.

Cada um destes possui suas propriedades que trazem da tabela. ElggObjects tem um título e uma descrição, ElggUsers tem "username" e "password", e assim por diante. Entretanto, poque todos eles herdam ElggEntoty, eles tem um numero de propriedades e comportamentos em comum:

  • Um numérico "Globally Unique IDentifier (GUID)". Cada ElggEntity tem um único GUID; se um ElggSite tem um GUID 7, você pode ter certeza que nenhum outro ElggSite, ElggObject, ElggUser ou ElggGroup terá um GUID 7.
  • Permissões de acesso. (Quando um plugin requisita um dado, ele nunca o tocará se no momento, usuários logados não tiverem permissão para vê-lo.)
  • Um subtipo absoluto. Por exemplo, um post de blog é um ElggObject com um subtipo "blog". Subtipos não são predefinidos; Eles podem ser qualquer tipo único que descreva um determinado tipo de entidade. "blog", "forum", "foo", "bar", "loafofbread" e "pyjamas" são subtipos válidos.
  • Um dono.
  • O site ao qual a entidade pertence.

[editar] "Annotations" e "metadata"

Você pode extender entidades com informações extras de duas formas:

  • Metadata são informações que você pode adicionar a um objeto para descrevê-lo no futuro. Por exemplo, tags, um ISBN number, um endereço de arquivo ou uma informação sobre a linguagem.
  • Annotations são informações geralmente adicionadas por outros participantes que adicionam informações a uma entidade. Por exemplo, comentários e votações.

[editar] Links

Ferramentas pessoais
Colaboradores