Em anexo está o ficheiro standard.make que foi usado no workshop para a criação inicial do site.

 

Para poder ter conteúdo diferenciado (sócios, não sócios), é necessário:

 

Criação de (pelo menos) um novo grupo de utilizadores (Sócios)

 

Criação de um vocabulário com categorias para o site que inclua um termo "Sócios" (Taxonomia)

  • e.g.
  • Notícias
  • Newsletter
  • Oferta de emprego
  • Congresso
  • ...
  • Sócios

O tipo de conteúdo "page" passa a ter obrigatoriamente uma classificação no vocabulário anterior, com a possibilidade de classificação em vários termos.

A ideia é que quando um qualquer conteúdo for classificado com o termo "Sócios" seja apenas visivel a sócios.

 

Para conseguir este efeito, usa-se o módulo Taxonomy access.

Dentro deste módulo, rejeita-se o acesso a utilizadores "anónimos" e "autenticados" ao conteúdo classificado com o termo "Sócios" usando a opção "Deny"

Para o grupo "Sócios" permite-se explicitamente o acesso a conteúdo classificado com este termo.

 

2ª Parte - gestão de quotas e pagamentos.

Módulos usados: CCK Nodereference (references no Drupal 7),viewsnode profile, viewfield computed field.

Cria-se os seguintes tipos de conteúdos:

 

1. Perfil - com os seguites campos:

Nome

Morada

Nº de sócio

(outros de interesse genérico)

Quotas pagas (node reference)

Recibos emitidos (Viewfield)

 

2. Quota com campos

Ano

Valor

 

3. Recibo com campo:

Sócio - Node reference from url (permite associar o perfil do utilizador que pagou a quota) Marcar a opção link com o título "Emitir Recibo".

Quota paga - node reference (referencia conteúdos do tipo quota)

Texto - Computed field (para gerar automaticamente o texto do recibo)

 

Código
$q=node_load($node->field_recibo_quota[0]['nid']);
$valor=$q->field_quota_valor[0]['value'];
$ano=$q->title;
$socio=node_load($node->field_recibo_socio[0]['nid']);
$nome=$socio->title;
$data_lic=$socio->field_data_lic[0]['value']; //Opcional
$ano_lic=date("Y",strtotime($data_lic)); // Opcional
if ($ano>$ano_lic) $valor =  $q->field_quota_nao_estudante[0]['value']; //Opcional
$node_field[0]['value'] = "<br><br>Recebemos de <b>$nome</b> a quantia de <b>$valor €</b> referente ao pagamento das quotas de sócio do ano <b>$ano</b> <br><br>A direcção da associação<br>";

Este código conta com dois valores, um para sócios "Estudantes" e outro para "Não estudantes" para funcionar, necessita existir um campo com a data da licenciatura no perfil do sócio, e dois valores especificados na quota.

 

Para a vista que mostra os recibos já emitidos para o sócio, usa-se o "nid" (número do nodo) como parametro. No tipo de conteúdo "perfil" passa-se "%nid" como parametro para a vista.

 

No exemplo real mostrado, ainda existia um grupo de campos extra no perfil para registar os pagamentos efectuados pelo sócio.

 

 

 

 

 

 

AttachmentSize
standart.make_.txt2.84 KB