You are here

public function TBMegaMenuBuilder::syncMenuItem in The Better Mega Menu 2.x

Same name and namespace in other branches
  1. 8 src/TBMegaMenuBuilder.php \Drupal\tb_megamenu\TBMegaMenuBuilder::syncMenuItem()

Sync a core menu item with the TB config.

Parameters

array $hash: An array of hashes for all menu items based on their positions.

array $tb_item: The individual menu item.

int|string $row_delta: The delta for the current row.

int|string $col_delta: The delta for the current column.

int|string $item_delta: The delta for the current item.

array $items: All items in the current menu.

array $item_config: The current configuration for all items.

Overrides TBMegaMenuBuilderInterface::syncMenuItem

1 call to TBMegaMenuBuilder::syncMenuItem()
TBMegaMenuBuilder::syncConfig in src/TBMegaMenuBuilder.php
Populate the item_config values.

File

src/TBMegaMenuBuilder.php, line 375

Class

TBMegaMenuBuilder
Defines a TBMegaMenuBuilder.

Namespace

Drupal\tb_megamenu

Code

public function syncMenuItem(array &$hash, array $tb_item, $row_delta, $col_delta, $item_delta, array $items, array &$item_config) {
  $hash[$tb_item['plugin_id']] = [
    'row' => $row_delta,
    'col' => $col_delta,
  ];
  $existed = FALSE;
  foreach ($items as $plugin_id => $item) {
    if ($item->link
      ->isEnabled() && $tb_item['plugin_id'] == $plugin_id) {
      $item_config['rows_content'][$row_delta][$col_delta]['col_content'][$item_delta]['weight'] = $item->link
        ->getWeight();
      $existed = TRUE;
      break;
    }
  }
  if (!$existed) {
    unset($item_config['rows_content'][$row_delta][$col_delta]['col_content'][$item_delta]);
    if (empty($item_config['rows_content'][$row_delta][$col_delta]['col_content'])) {
      unset($item_config['rows_content'][$row_delta][$col_delta]);
    }
    if (empty($item_config['rows_content'][$row_delta])) {
      unset($item_config['rows_content'][$row_delta]);
    }
  }
}