Projet

Général

Profil

Révision 4f315dab

Ajouté par Assos Assos il y a environ 8 ans

Weekly update of contrib modules

Voir les différences:

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