示例#1
0
     $res3 = db_query("UPDATE artifact_history SET old_value='{$group_name}',field_name='Group'\n\t\t\tWHERE old_value='{$artgroup_id}' AND field_name='artifact_group_id' AND artifact_id IN\n            (SELECT artifact_id FROM artifact WHERE group_artifact_id='{$gaid}')");
     if (!$res3) {
         echo "Could Not update history artifactgroup " . db_error();
         db_rollback();
         exit(11);
     }
 }
 if ($ur) {
     //
     //	Convert ArtifactResolution To Extra Field
     //
     $aef = new ArtifactExtraField($at);
     $aef->create('Resolution', ARTIFACT_EXTRAFIELDTYPE_SELECT, 0, 0);
     $resolutionbox_id = $aef->getID();
     if (!$resolutionbox_id) {
         echo "\nCould Not Get resolutionbox_id " . $aef->getErrorMessage();
         db_rollback();
         exit(12);
     }
     $resc = db_query("SELECT * FROM artifact_resolution");
     for ($j = 0; $j < db_numrows($resc); $j++) {
         $resolution_id = db_result($resc, $j, 'id');
         $resolution_name = addslashes(db_result($resc, $j, 'resolution_name'));
         if (strlen($resolution_name) < 1) {
             $resolution_name = '[empty]';
         }
         $efe = new ArtifactExtraFieldElement($aef);
         //	$efe->create($resolution_name);
         if (!$efe->create($resolution_name)) {
             echo 'Group: ' . $group_id . ' Could not create resolution element: ' . $resolution_name . ' ' . $efe->getErrorMessage();
             db_rollback();
 /**
  *	createTrackers - creates all the standard trackers for a given Group.
  *
  *	@return	boolean	success.
  */
 function createTrackers()
 {
     // first, check if trackers already exist
     $res = db_query("SELECT * FROM artifact_group_list \n\t\t\tWHERE group_id='" . $this->Group->getID() . "' AND datatype > 0");
     if (db_numrows($res) > 0) {
         return true;
     }
     include $GLOBALS['gfcommon'] . 'tracker/artifact_type_definitions.php';
     db_begin();
     foreach ($trackers as $trk) {
         $at = new ArtifactType($this->Group);
         if (!$at || !is_object($at)) {
             db_rollback();
             $this->setError('Error Getting Tracker Object');
             return false;
         }
         //
         //	Create a tracker
         //
         if (!$at->create(addslashes($trk[0]), addslashes($trk[1]), $trk[2], $trk[3], $trk[4], $trk[5], $trk[6], $trk[7], $trk[8], $trk[9], $trk[10])) {
             db_rollback();
             $this->setError('Error Creating Tracker: ' . $at->getErrorMessage());
             return false;
         } else {
             //
             //	Create each field in the tracker
             //
             foreach ($trk[11] as $fld) {
                 $aef = new ArtifactExtraField($at);
                 //print($fld[0])."***|";
                 if (!$aef->create(addslashes($fld[0]), $fld[1], $fld[2], $fld[3], $fld[4])) {
                     db_rollback();
                     $this->setError('Error Creating Extra Field: ' . $aef->getErrorMessage());
                     return false;
                 } else {
                     //
                     //	create each element in the field
                     //
                     foreach ($fld[5] as $el) {
                         //print($el)."**";
                         $aefe = new ArtifactExtraFieldElement($aef);
                         /*	 Allow us to provide a list as an element
                         			 value - in doing so, we can provide a
                         			 status field value for people wanting to
                         			 set up custom statuses. The first element
                         			 of any given array is the name, the second
                         			 is the status_id (0, 1 or 2)*/
                         $el_name = $el;
                         $el_status = 0;
                         if (is_array($el) && $fld[1] == ARTIFACT_EXTRAFIELDTYPE_STATUS) {
                             $el_name = $el[0];
                             $el_status = $el[1];
                         }
                         if (!$aefe->create(addslashes($el_name), $el_status)) {
                             db_rollback();
                             $this->setError('Error Creating Extra Field Element: ' . $aefe->getErrorMessage());
                             return false;
                         }
                     }
                 }
             }
         }
     }
     db_commit();
     return true;
 }
 /**
  *	cloneFieldsFrom - clone all the fields and elements from another tracker
  *
  *	@return	boolean	true/false on success
  */
 function cloneFieldsFrom($clone_tracker_id)
 {
     global $sys_template_group;
     $g =& group_get_object($sys_template_group);
     if (!$g || !is_object($g)) {
         $this->setError('Could Not Get Template Group');
         return false;
     } elseif ($g->isError()) {
         $this->setError('Template Group Error ' . $g->getErrorMessage());
         return false;
     }
     $at =& new ArtifactType($g, $clone_tracker_id);
     if (!$at || !is_object($at)) {
         $this->setError('Could Not Get Tracker To Clone');
         return false;
     } elseif ($at->isError()) {
         $this->setError('Clone Tracker Error ' . $at->getErrorMessage());
         return false;
     }
     $efs =& $at->getExtraFields();
     //
     //	Iterate list of extra fields
     //
     db_begin();
     foreach ($efs as $ef) {
         //new field in this tracker
         $nef = new ArtifactExtraField($this);
         if (!$nef->create(addslashes(util_unconvert_htmlspecialchars($ef['field_name'])), $ef['field_type'], $ef['attribute1'], $ef['attribute2'], $ef['is_required'], $ef['alias'])) {
             db_rollback();
             $this->setError('Error Creating New Extra Field: ' . $nef->getErrorMessage());
             return false;
         }
         //
         //	Iterate the elements
         //
         $resel = db_query("SELECT * FROM artifact_extra_field_elements WHERE extra_field_id='" . $ef['extra_field_id'] . "'");
         while ($el =& db_fetch_array($resel)) {
             //new element
             $nel = new ArtifactExtraFieldElement($nef);
             if (!$nel->create(addslashes(util_unconvert_htmlspecialchars($el['element_name'])), $el['status_id'])) {
                 db_rollback();
                 $this->setError('Error Creating New Extra Field Element: ' . $nel->getErrorMessage());
                 return false;
             }
         }
     }
     db_commit();
     return true;
 }