Révision 4f315dab
Ajouté par Assos Assos il y a environ 8 ans
drupal7/sites/all/modules/ds/ds.module | ||
---|---|---|
608 | 608 |
} |
609 | 609 |
|
610 | 610 |
// Move any preprocess fields to render container. |
611 |
// Inconsitency in taxonomy term naming. |
|
612 |
$object = $vars['elements']['#entity_type'];
|
|
611 |
// Inconsistency in taxonomy term naming.
|
|
612 |
$entity_type = $vars['elements']['#entity_type'];
|
|
613 | 613 |
if ($vars['elements']['#entity_type'] == 'taxonomy_term') { |
614 |
$object = 'term';
|
|
614 |
$entity_type = 'term';
|
|
615 | 615 |
} |
616 | 616 |
|
617 | 617 |
// Get entity id and bundle |
618 |
list($id,, $bundle) = entity_extract_ids($vars['elements']['#entity_type'], $vars[$object]); |
|
618 |
$id = NULL; |
|
619 |
$bundle = $vars['elements']['#bundle']; |
|
620 |
$entity = isset($vars[$entity_type]) ? $vars[$entity_type] : (isset($vars['elements']['#' . $entity_type]) ? $vars['elements']['#' . $entity_type] : NULL); |
|
621 |
list($id,, $bundle) = entity_extract_ids($entity_type, $entity); |
|
619 | 622 |
|
620 |
if (isset($vars[$object]->preprocess_fields)) {
|
|
621 |
foreach ($vars[$object]->preprocess_fields as $field) {
|
|
623 |
if (isset($vars[$entity_type]->preprocess_fields)) {
|
|
624 |
foreach ($vars[$entity_type]->preprocess_fields as $field) {
|
|
622 | 625 |
|
623 | 626 |
// Process RDF if the module is enabled before moving preprocess fields. |
624 | 627 |
if (module_exists('rdf')) { |
... | ... | |
667 | 670 |
$vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '_' . $vars['elements']['#view_mode']; |
668 | 671 |
$vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '_' . $bundle; |
669 | 672 |
$vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '_' . $bundle . '_' . $vars['elements']['#view_mode']; |
670 |
$vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '__' . $id; |
|
673 |
if (!empty($id)) { |
|
674 |
$vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '__' . $id; |
|
675 |
} |
|
671 | 676 |
} |
672 | 677 |
|
673 | 678 |
// If the layout has wrapper class lets add it. |
... | ... | |
677 | 682 |
} |
678 | 683 |
} |
679 | 684 |
|
685 |
$layout_render_array = array(); |
|
680 | 686 |
// Create region variables based on the layout settings. |
681 | 687 |
foreach ($layout['regions'] as $region_name => $region) { |
682 | 688 |
|
... | ... | |
700 | 706 |
$vars[$region_name . '_classes'] = !empty($layout['settings']['classes'][$region_name]) ? ' ' . implode(' ', $layout['settings']['classes'][$region_name]) : ''; |
701 | 707 |
|
702 | 708 |
// Token support for region classes. |
703 |
if (module_exists('token') && isset($vars[$object])) {
|
|
704 |
$vars[$region_name . '_classes'] = token_replace($vars[$region_name . '_classes'], array($object => $vars[$object]), array('clear' => TRUE, 'sanitize' => TRUE));
|
|
709 |
if (module_exists('token') && isset($vars[$entity_type])) {
|
|
710 |
$vars[$region_name . '_classes'] = token_replace($vars[$region_name . '_classes'], array($entity_type => $vars[$entity_type]), array('clear' => TRUE, 'sanitize' => TRUE));
|
|
705 | 711 |
} |
706 | 712 |
} |
707 | 713 |
// Add a wrapper to the region. |
... | ... | |
719 | 725 |
// Add layout attributes if any. |
720 | 726 |
$vars['layout_attributes'] = ''; |
721 | 727 |
if (!empty($layout['settings']['layout_attributes'])) { |
722 |
if (isset($vars[$object])) {
|
|
723 |
$vars['layout_attributes'] .= ' ' . token_replace($layout['settings']['layout_attributes'], array($object => $vars[$object]), array('clear' => TRUE, 'sanitize' => TRUE));
|
|
728 |
if (isset($vars[$entity_type])) {
|
|
729 |
$vars['layout_attributes'] .= ' ' . token_replace($layout['settings']['layout_attributes'], array($entity_type => $vars[$entity_type]), array('clear' => TRUE, 'sanitize' => TRUE));
|
|
724 | 730 |
} |
725 | 731 |
else { |
726 | 732 |
$vars['layout_attributes'] .= ' ' . $layout['settings']['layout_attributes']; |
... | ... | |
737 | 743 |
} |
738 | 744 |
|
739 | 745 |
// Token support for layout classes. |
740 |
if (module_exists('token') && isset($vars[$object])) {
|
|
746 |
if (module_exists('token') && isset($vars[$entity_type])) {
|
|
741 | 747 |
foreach ($vars['classes_array'] as &$class) { |
742 |
$class = token_replace($class, array($object => $vars[$object]), array('clear' => TRUE, 'sanitize' => TRUE));
|
|
748 |
$class = token_replace($class, array($entity_type => $vars[$entity_type]), array('clear' => TRUE, 'sanitize' => TRUE));
|
|
743 | 749 |
} |
744 | 750 |
} |
745 | 751 |
|
... | ... | |
748 | 754 |
$url = ''; |
749 | 755 |
switch ($layout['settings']['layout_link_attribute']) { |
750 | 756 |
case 'content': |
751 |
if ($object == 'user') {
|
|
757 |
if ($entity_type == 'user') {
|
|
752 | 758 |
$uri = entity_uri($vars['elements']['#entity_type'], $vars['elements']['#account']); |
753 | 759 |
} |
754 | 760 |
else { |
755 |
$uri = entity_uri($vars['elements']['#entity_type'], $vars[$object]);
|
|
761 |
$uri = entity_uri($vars['elements']['#entity_type'], $vars[$entity_type]);
|
|
756 | 762 |
} |
757 | 763 |
if (!empty($uri)) { |
758 | 764 |
$url = $uri['path']; |
... | ... | |
762 | 768 |
$url = $layout['settings']['layout_link_custom']; |
763 | 769 |
break; |
764 | 770 |
case 'tokens': |
765 |
$url = token_replace($layout['settings']['layout_link_custom'], array($vars['elements']['#entity_type'] => $vars[$object]), array('clear' => TRUE));
|
|
771 |
$url = token_replace($layout['settings']['layout_link_custom'], array($vars['elements']['#entity_type'] => $vars[$entity_type]), array('clear' => TRUE));
|
|
766 | 772 |
break; |
767 | 773 |
} |
768 | 774 |
|
... | ... | |
772 | 778 |
} |
773 | 779 |
|
774 | 780 |
// Set field weights for all fields, including pre-process. |
775 |
foreach($layout_render_array as $region => &$fields) { |
|
781 |
foreach ($layout_render_array as $region => &$fields) {
|
|
776 | 782 |
foreach ($fields as $field_key => &$field) { |
777 | 783 |
$field['#weight'] = $field_key; |
778 | 784 |
} |
779 | 785 |
} |
780 | 786 |
|
781 | 787 |
// Let other modules alter the ds array before creating the region variables. |
782 |
$context = array('entity' => isset($vars[$object]) ? $vars[$object] : (isset($vars['elements']['#' . $object]) ? $vars['elements']['#' . $object] : ''), 'entity_type' => $vars['elements']['#entity_type'], 'bundle' => $vars['elements']['#bundle'], 'view_mode' => $vars['elements']['#view_mode']);
|
|
788 |
$context = array('entity' => isset($vars[$entity_type]) ? $vars[$entity_type] : (isset($vars['elements']['#' . $entity_type]) ? $vars['elements']['#' . $entity_type] : ''), 'entity_type' => $vars['elements']['#entity_type'], 'bundle' => $vars['elements']['#bundle'], 'view_mode' => $vars['elements']['#view_mode']);
|
|
783 | 789 |
drupal_alter('ds_pre_render', $layout_render_array, $context, $vars); |
784 | 790 |
foreach ($layout_render_array as $region_name => $content) { |
785 | 791 |
// In case this is a panels layout, add the region to the $content variable. |
Formats disponibles : Unified diff
Weekly update of contrib modules