original_string: public function renderPluginParams()
      {
          /** @var Extension $entity */
          $tabNav     = [];
          $tabContent = [];
          $entity     = $this->_View->get('entity');
          $params     = Plugin::getData($entity->getName(), 'params');
          foreach ($params->getArrayCopy() as $title => $_params) {
              $fields   = [];
              $_params  = new Data($_params);
              $tabId    = 'tab-' . Str::slug($title);
              $tabNav[] = $this->_View->element('Extensions.Params/tab', [
                  'title'  => $title,
                  'params' => $_params,
                  'tabId'  => $tabId
              ]);
  
              foreach ($_params as $key => $options) {
                  $fieldName = Str::clean('params.' . $key);
                  if (is_callable($options)) {
                      $fields[] = call_user_func($options, $this->_View);
                      continue;
                  }
                  
                  if (isset($options['options']) && is_callable($options['options'])) {
                      $options['options'] = call_user_func($options['options'], $this->_View);
                  }
  
                  $fields[] = $this->_View->Form->control($fieldName, $options);
              }
  
              $tabContent[$tabId] = implode(PHP_EOL, $fields);
          }
  
          return implode(PHP_EOL, [
              $this->_View->element('Extensions.Params/list', ['items' => $tabNav]),
              $this->_View->element('Extensions.Params/content', ['content' => $tabContent])
          ]);
      }
code: public function renderPluginParams()
      {
          /** @var Extension $entity */
          $tabNav     = [];
          $tabContent = [];
          $entity     = $this->_View->get('entity');
          $params     = Plugin::getData($entity->getName(), 'params');
          foreach ($params->getArrayCopy() as $title => $_params) {
              $fields   = [];
              $_params  = new Data($_params);
              $tabId    = 'tab-' . Str::slug($title);
              $tabNav[] = $this->_View->element('Extensions.Params/tab', [
                  'title'  => $title,
                  'params' => $_params,
                  'tabId'  => $tabId
              ]);
  
              foreach ($_params as $key => $options) {
                  $fieldName = Str::clean('params.' . $key);
                  if (is_callable($options)) {
                      $fields[] = call_user_func($options, $this->_View);
                      continue;
                  }
                  
                  if (isset($options['options']) && is_callable($options['options'])) {
                      $options['options'] = call_user_func($options['options'], $this->_View);
                  }
  
                  $fields[] = $this->_View->Form->control($fieldName, $options);
              }
  
              $tabContent[$tabId] = implode(PHP_EOL, $fields);
          }
  
          return implode(PHP_EOL, [
              $this->_View->element('Extensions.Params/list', ['items' => $tabNav]),
              $this->_View->element('Extensions.Params/content', ['content' => $tabContent])
          ]);
      }
code_tokens: public function renderPluginParams ( ) { /** @var Extension $entity */ $ tabNav = [ ] ; $ tabContent = [ ] ; $ entity = $ this -> _View -> get ( 'entity' ) ; $ params = Plugin :: getData ( $ entity -> getName ( ) , 'params' ) ; foreach ( $ params -> getArrayCopy ( ) as $ title => $ _params ) { $ fields = [ ] ; $ _params = new Data ( $ _params ) ; $ tabId = 'tab-' . Str :: slug ( $ title ) ; $ tabNav [ ] = $ this -> _View -> element ( 'Extensions.Params/tab' , [ 'title' => $ title , 'params' => $ _params , 'tabId' => $ tabId ] ) ; foreach ( $ _params as $ key => $ options ) { $ fieldName = Str :: clean ( 'params.' . $ key ) ; if ( is_callable ( $ options ) ) { $ fields [ ] = call_user_func ( $ options , $ this -> _View ) ; continue ; } if ( isset ( $ options [ 'options' ] ) && is_callable ( $ options [ 'options' ] ) ) { $ options [ 'options' ] = call_user_func ( $ options [ 'options' ] , $ this -> _View ) ; } $ fields [ ] = $ this -> _View -> Form -> control ( $ fieldName , $ options ) ; } $ tabContent [ $ tabId ] = implode ( PHP_EOL , $ fields ) ; } return implode ( PHP_EOL , [ $ this -> _View -> element ( 'Extensions.Params/list' , [ 'items' => $ tabNav ] ) , $ this -> _View -> element ( 'Extensions.Params/content' , [ 'content' => $ tabContent ] ) ] ) ; }
docstring: Render plugin params.
  
  @return  string
  @throws  MissingElementException
docstring_tokens: Render plugin params .