Display Suite permet prendre el control sobre com les entitats (continguts, usuaris, termes de taxonomies,...) es pinten sense haver de fer-ho picant codi al tema de la nostra Web. Ens permet fer servir disposicions amb multiples columnes, gestionar el codi que es genera per a cada camp, crear-ne de nous, i s'integra amb el Views i el Panels (si volem).
- Característiques principals de DS: Disposicions, Camps, Estils, Modes de visualització.
- Extres: Plantilles de camps, Mode de visualització per node, Cambiador de mode de visualització, Mode de visualització revisió, Opcions de títol de pàgina, Regió a bloc
- Integració amb altres mòduls: Views, Panels, Field groups, Renderable elements
2. Qui soc
Luis Ortiz Ramos
@luisortizramos a Twitter
luis@ateneatech.com
Cofundador d'Atenea tech
www.ateneatech.com
3. “Drupal i eliminar l'intermediari”
Dries Buytaert, Abril de 2007
www.ateneatech.com
4. “Crec que hi ha un gran valor en perfeccionar les
tecnologies que es varen crear per eliminar al
webmaster, al desenvolupador, i al
disenyador. D'això és del que tracta Drupal”
www.ateneatech.com
9. No hi ha opcions per a seleccionar la disposició.
www.ateneatech.com
10. Exemple
Volem canviar la disposició dels nodes d'un tipus de contingut
“article”
Solució: al tema personalitzat:
● Copiar node.tpl.php al nostre tema.
● Duplicar-lo i renombrar-lo a node—article.tpl.php.
● Editar el PHP d'aquest últim arxiu:
● Incloure la nova disposició
● Pintar els camps on toqui
www.ateneatech.com
11. Els modes de visualització són fixos.
www.ateneatech.com
12. Exemple
Volem fer un mode de visualització per fer servir
en una vista amb resums especials a la pàgina
d'inici.
Solució: a un mòdul propi:
● Implementar hook_entity_info_alter()
www.ateneatech.com
14. No es poden afegir elements a la visualització.
www.ateneatech.com
15. Exemple
Volem un element que mostri AddThis als articles
Solució: a un mòdul propi:
● Implementar hook_field_extra_field() per a
definir el nou element.
● Implementar hook_node_view() per a pintar
l'element.
www.ateneatech.com
16. /**
* Implements hook_field_extra_fields().
*/
function MODUL_field_extra_fields() {
$extras['node']['article']['display']['addthis'] = array(
'label' => t('AddThis'),
'description' => t('AddThis'),
'weight' => 0,
);
return $extras;
}
/**
* Implements hook_node_view().
*/
function MODUL_node_view($node, $view_mode, $langcode) {
if ($node->type=='article') {
$node->content['addthis'] = array('#markup' => '...EL CODI HTML QUE DONA
ADDTHIS...');
}
}
●
www.ateneatech.com
17. No es pot determinar la sortida HTML dels camps.
www.ateneatech.com
18. Exemple
Volem simplificar la sortida del camp Cos dels Articles
Solució “fàcil”: al tema personalitzat:
● Copiar field.tpl.php
● Duplicar aquest arxiu i li diem field—body—article.tpl.php
● Editar el PHP d'aquest arxiu per a modificar la sortida del
camp.
www.ateneatech.com
19. No és possible ocultar el títol de les pàgines.
www.ateneatech.com
20. Exemple
Volem ocultar el títol de la pàgina dels continguts
de tipus “Pàgina bàsica”
Solució: al tema personalitzat
● Creem un arxiu anomenat template.php
● Implementem theme_process_page()
www.ateneatech.com
21. /**
* Implements hook_process_page().
*/
function TEMA_process_page(&$vars) {
if ($vars['node'] && $vars['node']->type=='page') {
unset($vars['title']);
}
}
www.ateneatech.com
22. No és possible fer servir contingut d'una entitat
fora del bloc de contingut ni a l'inrevés.
www.ateneatech.com
23. Exemple
Volem mostrar el valor del camp 'icona' de l'article
a la barra lateral.
Solució: fer una vista que mostri la icona, rebi
com a filtre contextual l'identificador del node i
generi un bloc, col·locar-lo a la barra lateral i
configurar-lo per a que només es vegi quan
estem a la pàgina d'un article.
www.ateneatech.com
24. Resum
● No hi ha opcions per a seleccionar la disposició.
● Els modes de visualització son fixos.
● No es poden afegir elements a la visualització.
● No es pot determinar la sortida HTML dels
camps.
● No és possible ocultar el títol de les pàgines.
● No és possible fer servir contingut d'una entitat
fora del bloc de contingut ni a l'inrevés.
www.ateneatech.com