Перейти к основному содержанию

Программное перемещение блока и расположение его после определенного блока

Отправлено said от вт, 10/02/2018 - 15:37

Если нужно переместить блок и установить его за каким-то другим блоком, а сделать через админку это по какой-то причине нельзя, ну например на разных страницах должен быть разный порядок следования блоков, то в этом случае в препроцессе страницы можно пересортировать блоки. Например так:

$block_before = 'block1';
$block_after = 'block8';
if (drupal_is_front_page() && isset($vars['page']['content'][$block_after], $vars['page']['content'][$block_before])) {
  $content = array();
  foreach ($vars['page']['content'] as $key => $value) {
    if ($key == $block_after)
      continue;
    $content[$key] = $value;
    if ($key == $block_before)
      $content[$block_after] = $vars['page']['content'][$block_after];
  }
  $vars['page']['content'] = $content;
}

 

Теги