/**
  * Merges the toolbars into the CKEditor configs.
  *
  * @param array $config The CKEditor configuration.
  *
  * @throws \Ivory\CKEditorBundle\Exception\DependencyInjectionException If a toolbar does not exist.
  *
  * @return array The CKEditor configuration with merged toolbars.
  */
 protected function mergeToolbars(array $config)
 {
     $resolvedToolbars = $this->resolveToolbars($config);
     unset($config['toolbars']);
     foreach ($config['configs'] as $name => $configuration) {
         if (!isset($configuration['toolbar']) || !is_string($configuration['toolbar'])) {
             continue;
         }
         if (!isset($resolvedToolbars[$configuration['toolbar']])) {
             throw DependencyInjectionException::invalidToolbar($configuration['toolbar']);
         }
         $config['configs'][$name]['toolbar'] = $resolvedToolbars[$configuration['toolbar']];
     }
     return $config;
 }
 /**
  * Merges the toolbars into the CKEditor configurations.
  *
  * @param array $config The CKEditor configuration.
  *
  * @return array The CKEditor configuration with merged toolbars.
  */
 protected function mergeToolbars(array $config)
 {
     $toolbars = array();
     $toolbarConfigs = array_merge($this->getDefaultToolbars(), $config['toolbars']['configs']);
     foreach ($toolbarConfigs as $name => $toolbar) {
         $toolbars[$name] = array();
         foreach ($toolbar as $item) {
             if (is_string($item) && $item[0] === '@') {
                 $itemName = substr($item, 1);
                 if (!isset($config['toolbars']['items'][$itemName])) {
                     throw DependencyInjectionException::invalidToolbarItem($itemName);
                 }
                 $item = $config['toolbars']['items'][$itemName];
             }
             $toolbars[$name][] = $item;
         }
     }
     foreach ($config['configs'] as $name => $configuration) {
         if (isset($configuration['toolbar']) && is_string($configuration['toolbar'])) {
             if (!isset($toolbars[$configuration['toolbar']])) {
                 throw DependencyInjectionException::invalidToolbar($configuration['toolbar']);
             }
             $config['configs'][$name]['toolbar'] = $toolbars[$configuration['toolbar']];
         }
     }
     unset($config['toolbars']);
     return $config;
 }