original_string: protected function upgradeSettings($settings)
      {
          /*
           * Handle component usage
           */
          $componentProperties = post('component_properties');
          $componentNames = post('component_names');
          $componentAliases = post('component_aliases');
  
          if ($componentProperties !== null) {
              if ($componentNames === null || $componentAliases === null) {
                  throw new ApplicationException(trans('cms::lang.component.invalid_request'));
              }
  
              $count = count($componentProperties);
              if (count($componentNames) != $count || count($componentAliases) != $count) {
                  throw new ApplicationException(trans('cms::lang.component.invalid_request'));
              }
  
              for ($index = 0; $index < $count; $index++) {
                  $componentName = $componentNames[$index];
                  $componentAlias = $componentAliases[$index];
  
                  $section = $componentName;
                  if ($componentAlias != $componentName) {
                      $section .= ' '.$componentAlias;
                  }
  
                  $properties = json_decode($componentProperties[$index], true);
                  unset($properties['oc.alias'], $properties['inspectorProperty'], $properties['inspectorClassName']);
                  $settings[$section] = $properties;
              }
          }
  
          /*
           * Handle view bag
           */
          $viewBag = post('viewBag');
          if ($viewBag !== null) {
              $settings['viewBag'] = $viewBag;
          }
  
          /**
           * @event cms.template.processSettingsBeforeSave
           * Fires before a CMS template (page|partial|layout|content|asset) is saved and provides an opportunity to interact with the settings data. `$dataHolder` = {settings: array()}
           *
           * Example usage:
           *
           *     Event::listen('cms.template.processSettingsBeforeSave', function ((\Cms\Controllers\Index) $controller, (object) $dataHolder) {
           *         // Make some modifications to the $dataHolder object
           *     });
           *
           * Or
           *
           *     $CmsIndexController->bindEvent('template.processSettingsBeforeSave', function ((object) $dataHolder) {
           *         // Make some modifications to the $dataHolder object
           *     });
           *
           */
          $dataHolder = (object) ['settings' => $settings];
          $this->fireSystemEvent('cms.template.processSettingsBeforeSave', [$dataHolder]);
  
          return $dataHolder->settings;
      }
code: protected function upgradeSettings($settings)
      {
          /*
           * Handle component usage
           */
          $componentProperties = post('component_properties');
          $componentNames = post('component_names');
          $componentAliases = post('component_aliases');
  
          if ($componentProperties !== null) {
              if ($componentNames === null || $componentAliases === null) {
                  throw new ApplicationException(trans('cms::lang.component.invalid_request'));
              }
  
              $count = count($componentProperties);
              if (count($componentNames) != $count || count($componentAliases) != $count) {
                  throw new ApplicationException(trans('cms::lang.component.invalid_request'));
              }
  
              for ($index = 0; $index < $count; $index++) {
                  $componentName = $componentNames[$index];
                  $componentAlias = $componentAliases[$index];
  
                  $section = $componentName;
                  if ($componentAlias != $componentName) {
                      $section .= ' '.$componentAlias;
                  }
  
                  $properties = json_decode($componentProperties[$index], true);
                  unset($properties['oc.alias'], $properties['inspectorProperty'], $properties['inspectorClassName']);
                  $settings[$section] = $properties;
              }
          }
  
          /*
           * Handle view bag
           */
          $viewBag = post('viewBag');
          if ($viewBag !== null) {
              $settings['viewBag'] = $viewBag;
          }
  
          /**
           * @event cms.template.processSettingsBeforeSave
           * Fires before a CMS template (page|partial|layout|content|asset) is saved and provides an opportunity to interact with the settings data. `$dataHolder` = {settings: array()}
           *
           * Example usage:
           *
           *     Event::listen('cms.template.processSettingsBeforeSave', function ((\Cms\Controllers\Index) $controller, (object) $dataHolder) {
           *         // Make some modifications to the $dataHolder object
           *     });
           *
           * Or
           *
           *     $CmsIndexController->bindEvent('template.processSettingsBeforeSave', function ((object) $dataHolder) {
           *         // Make some modifications to the $dataHolder object
           *     });
           *
           */
          $dataHolder = (object) ['settings' => $settings];
          $this->fireSystemEvent('cms.template.processSettingsBeforeSave', [$dataHolder]);
  
          return $dataHolder->settings;
      }
code_tokens: protected function upgradeSettings ( $ settings ) { /*
           * Handle component usage
           */ $ componentProperties = post ( 'component_properties' ) ; $ componentNames = post ( 'component_names' ) ; $ componentAliases = post ( 'component_aliases' ) ; if ( $ componentProperties !== null ) { if ( $ componentNames === null || $ componentAliases === null ) { throw new ApplicationException ( trans ( 'cms::lang.component.invalid_request' ) ) ; } $ count = count ( $ componentProperties ) ; if ( count ( $ componentNames ) != $ count || count ( $ componentAliases ) != $ count ) { throw new ApplicationException ( trans ( 'cms::lang.component.invalid_request' ) ) ; } for ( $ index = 0 ; $ index < $ count ; $ index ++ ) { $ componentName = $ componentNames [ $ index ] ; $ componentAlias = $ componentAliases [ $ index ] ; $ section = $ componentName ; if ( $ componentAlias != $ componentName ) { $ section .= ' ' . $ componentAlias ; } $ properties = json_decode ( $ componentProperties [ $ index ] , true ) ; unset ( $ properties [ 'oc.alias' ] , $ properties [ 'inspectorProperty' ] , $ properties [ 'inspectorClassName' ] ) ; $ settings [ $ section ] = $ properties ; } } /*
           * Handle view bag
           */ $ viewBag = post ( 'viewBag' ) ; if ( $ viewBag !== null ) { $ settings [ 'viewBag' ] = $ viewBag ; } /**
           * @event cms.template.processSettingsBeforeSave
           * Fires before a CMS template (page|partial|layout|content|asset) is saved and provides an opportunity to interact with the settings data. `$dataHolder` = {settings: array()}
           *
           * Example usage:
           *
           *     Event::listen('cms.template.processSettingsBeforeSave', function ((\Cms\Controllers\Index) $controller, (object) $dataHolder) {
           *         // Make some modifications to the $dataHolder object
           *     });
           *
           * Or
           *
           *     $CmsIndexController->bindEvent('template.processSettingsBeforeSave', function ((object) $dataHolder) {
           *         // Make some modifications to the $dataHolder object
           *     });
           *
           */ $ dataHolder = ( object ) [ 'settings' => $ settings ] ; $ this -> fireSystemEvent ( 'cms.template.processSettingsBeforeSave' , [ $ dataHolder ] ) ; return $ dataHolder -> settings ; }
docstring: Processes the component settings so they are ready to be saved
  @param array $settings
  @return array
docstring_tokens: Processes the component settings so they are ready to be saved