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ó: 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
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ó: 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;}