ComputerDisk::cloneComputer PHP Method

cloneComputer() static public method

Duplicate all disks from a computer template to his clone
static public cloneComputer ( $oldid, $newid )
$oldid
$newid
    static function cloneComputer($oldid, $newid)
    {
        global $DB;
        $query = "SELECT *\n                 FROM `glpi_computerdisks`\n                 WHERE `computers_id` = '{$oldid}'";
        foreach ($DB->request($query) as $data) {
            $cd = new self();
            unset($data['id']);
            $data['computers_id'] = $newid;
            $data = Toolbox::addslashes_deep($data);
            $cd->add($data);
        }
    }

Usage Example

Example #1
0
 function post_addItem()
 {
     global $DB;
     // Manage add from template
     if (isset($this->input["_oldID"])) {
         // ADD Devices
         Item_devices::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']);
         // ADD Infocoms
         Infocom::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']);
         // ADD volumes
         ComputerDisk::cloneComputer($this->input["_oldID"], $this->fields['id']);
         // ADD software
         Computer_SoftwareVersion::cloneComputer($this->input["_oldID"], $this->fields['id']);
         Computer_SoftwareLicense::cloneComputer($this->input["_oldID"], $this->fields['id']);
         // ADD Contract
         Contract_Item::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']);
         // ADD Documents
         Document_Item::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']);
         // ADD Ports
         NetworkPort::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']);
         // Add connected devices
         Computer_Item::cloneComputer($this->input["_oldID"], $this->fields['id']);
     }
 }