Contract_Item::cloneItem PHP Метод

cloneItem() статический публичный Метод

Duplicate contracts from an item template to its clone
static public cloneItem ( $itemtype, $oldid, $newid, $newitemtype = '' )
$itemtype itemtype of the item
$oldid ID of the item to clone
$newid ID of the item cloned
$newitemtype itemtype of the new item (= $itemtype if empty) (default '')
    static function cloneItem($itemtype, $oldid, $newid, $newitemtype = '')
    {
        global $DB;
        if (empty($newitemtype)) {
            $newitemtype = $itemtype;
        }
        foreach ($DB->request('glpi_contracts_items', array('FIELDS' => 'contracts_id', 'WHERE' => "`items_id` = '{$oldid}'\n                                                AND `itemtype` = '{$itemtype}'")) as $data) {
            $contractitem = new self();
            $contractitem->add(array('contracts_id' => $data["contracts_id"], 'itemtype' => $newitemtype, 'items_id' => $newid));
        }
    }

Usage Example

 function post_addItem()
 {
     global $DB, $CFG_GLPI;
     // 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 Ports
         NetworkPort::cloneItem($this->getType(), $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 Computers
         Computer_Item::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']);
     }
 }
All Usage Examples Of Contract_Item::cloneItem