SlideShare a Scribd company logo
Associació Espanyola de
Pediatria d'Atenció Primària
Qui sóc

          Luis Ortiz Ramos
           ● luis@ateneatech.com
           ● @luisortizramos

          Atenea tech
           ● http://ateneatech.com
           ● hola@ateneatech.com
           ● @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
AEPap web en Drupal desenvolupada per Atenea tech
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:               Gestió de menús:
 ● Link               ● Menu block
 ● Email              ● Menu position
 ● References
 ● Date              Gestió d'adreces:
 ● Fieldgroup         ● Pathauto
                      ● Transliteration
Vistes:               ● Token
 ● Views
 ● Views slideshow
 ● Calendar
AEPap web en Drupal desenvolupada per Atenea tech
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 esborrat
Codi!
/**
  * 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?

More Related Content

More from Atenea tech

Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
Atenea tech
 
Layout discovery. Drupal Summer Barcelona 2017
Layout discovery. Drupal Summer Barcelona 2017Layout discovery. Drupal Summer Barcelona 2017
Layout discovery. Drupal Summer Barcelona 2017
Atenea tech
 
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
Atenea tech
 
Let’s encrypt
Let’s encryptLet’s encrypt
Let’s encrypt
Atenea tech
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8
Atenea tech
 
Extreme page composition with paragraphs
Extreme page composition with paragraphsExtreme page composition with paragraphs
Extreme page composition with paragraphs
Atenea tech
 
Composición de páginas complejas con paragraphs
Composición de páginas complejas con paragraphsComposición de páginas complejas con paragraphs
Composición de páginas complejas con paragraphs
Atenea tech
 
Cmi en drupal 8
Cmi en drupal 8Cmi en drupal 8
Cmi en drupal 8
Atenea tech
 
¿Qué es drupal?
¿Qué es drupal? ¿Qué es drupal?
¿Qué es drupal?
Atenea tech
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8
Atenea tech
 
Cultura empresarial, Open Source y Drupal
Cultura empresarial, Open Source y DrupalCultura empresarial, Open Source y Drupal
Cultura empresarial, Open Source y Drupal
Atenea tech
 
Formularios en Drupal 8
Formularios en Drupal 8Formularios en Drupal 8
Formularios en Drupal 8
Atenea tech
 
Introduciendo drupal 8
Introduciendo drupal 8Introduciendo drupal 8
Introduciendo drupal 8
Atenea tech
 
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
Atenea tech
 
Xarxes socials
Xarxes socialsXarxes socials
Xarxes socials
Atenea tech
 
Fundacio Cim Drupal Camp 2010
Fundacio Cim   Drupal Camp 2010Fundacio Cim   Drupal Camp 2010
Fundacio Cim Drupal Camp 2010
Atenea tech
 
Drush Make & Feature Server - Drupal Camp Spain 2010
Drush Make & Feature Server - Drupal Camp Spain 2010Drush Make & Feature Server - Drupal Camp Spain 2010
Drush Make & Feature Server - Drupal Camp Spain 2010
Atenea tech
 
Open Atrium para la gestión de proyectos - Drupal Camp 2010
Open Atrium para la gestión de proyectos - Drupal Camp 2010Open Atrium para la gestión de proyectos - Drupal Camp 2010
Open Atrium para la gestión de proyectos - Drupal Camp 2010
Atenea tech
 
Presentació Web de Sant Climent de Llobregat a Drupal.cat
Presentació Web de Sant Climent de Llobregat a Drupal.catPresentació Web de Sant Climent de Llobregat a Drupal.cat
Presentació Web de Sant Climent de Llobregat a Drupal.cat
Atenea tech
 
Drupal
DrupalDrupal
Drupal
Atenea tech
 

More from Atenea tech (20)

Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
 
Layout discovery. Drupal Summer Barcelona 2017
Layout discovery. Drupal Summer Barcelona 2017Layout discovery. Drupal Summer Barcelona 2017
Layout discovery. Drupal Summer Barcelona 2017
 
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
 
Let’s encrypt
Let’s encryptLet’s encrypt
Let’s encrypt
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8
 
Extreme page composition with paragraphs
Extreme page composition with paragraphsExtreme page composition with paragraphs
Extreme page composition with paragraphs
 
Composición de páginas complejas con paragraphs
Composición de páginas complejas con paragraphsComposición de páginas complejas con paragraphs
Composición de páginas complejas con paragraphs
 
Cmi en drupal 8
Cmi en drupal 8Cmi en drupal 8
Cmi en drupal 8
 
¿Qué es drupal?
¿Qué es drupal? ¿Qué es drupal?
¿Qué es drupal?
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8
 
Cultura empresarial, Open Source y Drupal
Cultura empresarial, Open Source y DrupalCultura empresarial, Open Source y Drupal
Cultura empresarial, Open Source y Drupal
 
Formularios en Drupal 8
Formularios en Drupal 8Formularios en Drupal 8
Formularios en Drupal 8
 
Introduciendo drupal 8
Introduciendo drupal 8Introduciendo drupal 8
Introduciendo drupal 8
 
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
 
Xarxes socials
Xarxes socialsXarxes socials
Xarxes socials
 
Fundacio Cim Drupal Camp 2010
Fundacio Cim   Drupal Camp 2010Fundacio Cim   Drupal Camp 2010
Fundacio Cim Drupal Camp 2010
 
Drush Make & Feature Server - Drupal Camp Spain 2010
Drush Make & Feature Server - Drupal Camp Spain 2010Drush Make & Feature Server - Drupal Camp Spain 2010
Drush Make & Feature Server - Drupal Camp Spain 2010
 
Open Atrium para la gestión de proyectos - Drupal Camp 2010
Open Atrium para la gestión de proyectos - Drupal Camp 2010Open Atrium para la gestión de proyectos - Drupal Camp 2010
Open Atrium para la gestión de proyectos - Drupal Camp 2010
 
Presentació Web de Sant Climent de Llobregat a Drupal.cat
Presentació Web de Sant Climent de Llobregat a Drupal.catPresentació Web de Sant Climent de Llobregat a Drupal.cat
Presentació Web de Sant Climent de Llobregat a Drupal.cat
 
Drupal
DrupalDrupal
Drupal
 

AEPap web en Drupal desenvolupada per Atenea tech

  • 1. Associació Espanyola de Pediatria d'Atenció Primària
  • 2. Qui sóc Luis Ortiz Ramos ● luis@ateneatech.com ● @luisortizramos Atenea tech ● http://ateneatech.com ● hola@ateneatech.com ● @ateneatech
  • 3. 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
  • 5. 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
  • 7. Solució: mòduls contribuïts Camps: Gestió de menús: ● Link ● Menu block ● Email ● Menu position ● References ● Date Gestió d'adreces: ● Fieldgroup ● Pathauto ● Transliteration Vistes: ● Token ● Views ● Views slideshow ● Calendar
  • 10. 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.
  • 11. Solució ● Organic Groups: No. És massa complicat de mantenir per a l'administrador ● Alternativa: tota la informació a Continguts i Usuaris
  • 13. 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.
  • 14. Solució: actualització i esborrat Codi! /** * 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; }