/**
  * Add custom plugin fields to bug-specific sites (bug_report, bug_update, bug_view)
  *
  * @param $event
  * @return null
  */
 function bugViewFields($event)
 {
     require_once SPECMANAGEMENT_CORE_URI . 'specmanagement_database_api.php';
     require_once SPECMANAGEMENT_CORE_URI . 'specmanagement_print_api.php';
     $specmanagement_database_api = new specmanagement_database_api();
     $specmanagement_print_api = new specmanagement_print_api();
     $bug_id = null;
     $type = null;
     $work_package = null;
     $ptime = null;
     switch ($event) {
         case 'EVENT_UPDATE_BUG_FORM':
             $bug_id = gpc_get_int('bug_id');
             break;
         case 'EVENT_VIEW_BUG_DETAILS':
             $bug_id = gpc_get_int('id');
             break;
     }
     if ($bug_id != null) {
         $source_obj = $specmanagement_database_api->get_source_row($bug_id);
         $work_package = $source_obj[3];
         $ptime_obj = $specmanagement_database_api->get_ptime_row($bug_id);
         $ptime = $ptime_obj[2];
         if (0 == strlen(bug_get_field($bug_id, 'target_version'))) {
             $specmanagement_database_api->update_source_version($bug_id, null);
         }
         $p_version_id = $source_obj[2];
         if (!is_null($p_version_id)) {
             $version_obj = $specmanagement_database_api->get_version_row_by_primary($p_version_id);
             $type_id = $version_obj[3];
             $type = $specmanagement_database_api->get_type_string($type_id);
         }
     }
     if (plugin_config_get('ShowFields')) {
         switch ($event) {
             case 'EVENT_VIEW_BUG_DETAILS':
                 if ($this->getReadLevel() || $this->getWriteLevel() || $this->getUserHasLevel()) {
                     $specmanagement_print_api->printBugViewFields($type, $work_package, $ptime);
                 }
                 break;
             case 'EVENT_REPORT_BUG_FORM':
                 if ($this->getWriteLevel() || $this->getUserHasLevel()) {
                     $specmanagement_print_api->printBugReportFields();
                 }
                 break;
             case 'EVENT_UPDATE_BUG_FORM':
                 if ($this->getWriteLevel() || $this->getUserHasLevel()) {
                     $specmanagement_print_api->printBugUpdateFields($type, $work_package, $ptime);
                 }
                 break;
         }
     }
     return null;
 }