Download - AEPap web en Drupal desenvolupada per Atenea tech

Transcript

Associació Espanyola de Pediatria d'Atenció Primària

Qui sóc

Luis Ortiz Ramos● [email protected]● @luisortizramos

Atenea tech● http://ateneatech.com● [email protected]● @ateneatech

L'AEPap

● Més de 3000 pediatres d'atenció primària

● Es sustenta en organitzacións:

○ Associacións regionals○ Grups de treball

● http://aepap.org

La nova Web

Objectiu:● Comunicar l'activitat generada per l'associació i per les

organitzacions que hi formen part. Requeriments principals:

● Contingut estàtic:○ Pàgines○ Formulari de contacte

● Contingut dinàmic:○ Secció d'actualitat○ Secció d'agenda○ Secció de biblioteca

● Organitzacions

Solució: core

Solució: mòduls contribuïts

Camps:● Link● Email● References● Date● Fieldgroup

Vistes:

● Views● Views slideshow● Calendar

Gestió de menús:● Menu block● Menu position

Gestió d'adreces:

● Pathauto● Transliteration● Token

Organitzacions

Associacions regionals i grups de treball

Organitzacions

Requeriments principals: ● Contingut estàtic:

○ Pàgines○ Formulari de contacte

● Contingut dinàmic:○ Secció d'actualitat○ Secció d'agenda○ Secció de biblioteca

Usuaris editors poden afegir contingut dinàmic només a les organitzacions de les que són membres.

Solució

● Organic Groups: No. És massa complicat de mantenir per a l'administrador

● Alternativa: tota la informació a Continguts i Usuaris

Solució

Solució: creació de continguts

El camp lloc de publicació només pot fer referencia a nodes resultat d'una vista que mostra les organitzacions de les que l'usuari actual és membre.

Solució: actualització i esborratCodi! /** * Implements hook_node_access(). */function aepap_node_access($node, $op, $account) { // Operació és actualització o esborrat if ($op=='delete' || $op=='update') { // Contingut és notícia if ($node->type=='new') { // Usuari és editor d'organització if (array_key_exists(9, $account->roles)) { $publication_place = node_load($node->field_new_publication_place['und'][0]['nid']); if (!empty($publication_place->field_members)) { foreach($publication_place->field_members['und'] as $member) { // Usuari és membre de la organització que és lloc de publicació de la notícia if ($member['uid'] == $user->uid) { return NODE_ACCESS_ALLOW; } } } } } } return NODE_ACCESS_IGNORE;}

Preguntes?