/**
  * HTML for group of params inside Panel group
  *
  * @param string $key
  * @param array  $param_group Array of setting options in a group
  * @param array  $data        Stored data of settings
  * @param string $parent_id
  * @param bool   $settings    : array of custom settings
  *
  * @return string
  */
 static function sub_panel_group($key, $param_group, $data, $parent_id, $settings = array())
 {
     // Content for body
     $content = self::do_settings($param_group, $data);
     // Class for wrapper
     $class = PT_CV_Html::html_group_class();
     $class .= isset($settings['show_all']) ? '' : ' hidden';
     $class .= isset($settings['show_only_one']) ? ' ' . PT_CV_PREFIX . 'only-one' : '';
     $class .= isset($settings['no_panel']) ? ' ' . PT_CV_PREFIX . 'no-panel' : '';
     $class .= isset($settings['no_animation']) ? ' ' . PT_CV_PREFIX . 'no-animation' : '';
     // Id for wrapper
     $id = PT_CV_Html::html_group_id($key);
     if (!isset($settings['no_panel'])) {
         // Heading text
         $heading = isset($settings['nice_name']) && isset($settings['nice_name'][$key]) ? $settings['nice_name'][$key] : PT_CV_Functions::string_slug_to_text($key);
         $heading = __($heading, PT_CV_DOMAIN) . ' ' . __('Settings', PT_CV_DOMAIN);
         $html = PT_CV_Html::html_collapse_one($parent_id, $id . '-child', $heading, $content, true);
     } else {
         $html = $content;
     }
     return "<div class='{$class}' id='{$id}'>{$html}</div>";
 }