/**
  * Мерджит метаданые пункта меню в порядке
  * - Пункт меню, помеченный как главная страница (если есть)
  * - Все предки пункта меню
  * - Пункт меню
  * @param $menu MenuItem
  * @return array
  */
 protected function buildMenuMetaData($menu)
 {
     $chain = [];
     if ($this->menuManager->getMenuMap()->getMainMenu()) {
         $chain[] = $this->menuManager->getMenuMap()->getMainMenu();
     }
     $chain = array_merge($chain, $menu->parents()->excludeRoots()->all(), [$menu]);
     $metaDataChain = array_map(function ($value) {
         /** @var $value MenuItem */
         $metaData = [];
         if (!empty($value->metakey)) {
             $metaData['keywords'] = $value->metakey;
         }
         if (!empty($value->metadesc)) {
             $metaData['description'] = $value->metadesc;
         }
         if (!empty($value->robots)) {
             $metaData['robots'] = $value->robots;
         }
         if (!empty($value->layout_path)) {
             $metaData['layout'] = $value->layout_path;
         }
         return $metaData;
     }, $chain);
     return count($metaDataChain) > 1 ? call_user_func_array('yii\\helpers\\ArrayHelper::merge', $metaDataChain) : $metaDataChain[0];
 }