예제 #1
0
 function cleanDBonPurge()
 {
     $di = new Document_Item();
     $di->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     // UNLINK DU FICHIER
     if (!empty($this->fields["filepath"])) {
         if (is_file(GLPI_DOC_DIR . "/" . $this->fields["filepath"]) && !is_dir(GLPI_DOC_DIR . "/" . $this->fields["filepath"]) && countElementsInTable($this->getTable(), "`sha1sum`='" . $this->fields["sha1sum"] . "'") <= 1) {
             if (unlink(GLPI_DOC_DIR . "/" . $this->fields["filepath"])) {
                 Session::addMessageAfterRedirect(sprintf(__('Succesful deletion of the file %s'), GLPI_DOC_DIR . "/" . $this->fields["filepath"]));
             } else {
                 Session::addMessageAfterRedirect(sprintf(__('Failed to delete the file %s'), GLPI_DOC_DIR . "/" . $this->fields["filepath"]), false, ERROR);
             }
         }
     }
 }
예제 #2
0
 function cleanDBonPurge()
 {
     global $LANG;
     $di = new Document_Item();
     $di->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     // UNLINK DU FICHIER
     if (!empty($this->fields["filepath"])) {
         if (is_file(GLPI_DOC_DIR . "/" . $this->fields["filepath"]) && !is_dir(GLPI_DOC_DIR . "/" . $this->fields["filepath"]) && countElementsInTable($this->getTable(), "`sha1sum`='" . $this->fields["sha1sum"] . "'") <= 1) {
             if (unlink(GLPI_DOC_DIR . "/" . $this->fields["filepath"])) {
                 addMessageAfterRedirect($LANG['document'][24] . " " . GLPI_DOC_DIR . "/" . $this->fields["filepath"]);
             } else {
                 addMessageAfterRedirect($LANG['document'][25] . " " . GLPI_DOC_DIR . "/" . $this->fields["filepath"], false, ERROR);
             }
         }
     }
 }
예제 #3
0
 /**
  * Clean the date in the relation tables for the deleted item
  * Clear N/N Relation
  **/
 function cleanRelationTable()
 {
     global $CFG_GLPI, $DB;
     // If this type have INFOCOM, clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['infocom_types'])) {
         $infocom = new Infocom();
         if ($infocom->getFromDBforDevice($this->getType(), $this->fields['id'])) {
             $infocom->delete(array('id' => $infocom->fields['id']));
         }
     }
     // If this type have NETPORT, clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['networkport_types'])) {
         $query = "SELECT `id`\n                   FROM `glpi_networkports`\n                   WHERE (`items_id` = '" . $this->fields['id'] . "'\n                          AND `itemtype` = '" . $this->getType() . "')";
         $result = $DB->query($query);
         while ($data = $DB->fetch_array($result)) {
             $q = "DELETE\n                  FROM `glpi_networkports_networkports`\n                  WHERE (`networkports_id_1` = '" . $data["id"] . "'\n                         OR `networkports_id_2` = '" . $data["id"] . "')";
             $result2 = $DB->query($q);
         }
         $query = "DELETE\n                   FROM `glpi_networkports`\n                   WHERE (`items_id` = '" . $this->fields['id'] . "'\n                          AND `itemtype` = '" . $this->getType() . "')";
         $result = $DB->query($query);
     }
     // If this type is RESERVABLE clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['reservation_types'])) {
         $rr = new ReservationItem();
         if ($rr->getFromDBbyItem($this->getType(), $this->fields['id'])) {
             $rr->delete(array('id' => $infocom->fields['id']));
         }
     }
     // If this type have CONTRACT, clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['contract_types'])) {
         $ci = new Contract_Item();
         $ci->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     }
     // If this type have DOCUMENT, clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI["document_types"])) {
         $di = new Document_Item();
         $di->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     }
 }
예제 #4
0
 /**
  * Clean the date in the relation tables for the deleted item
  * Clear N/N Relation
  **/
 function cleanRelationTable()
 {
     global $CFG_GLPI, $DB;
     // If this type have INFOCOM, clean one associated to purged item
     if (Infocom::canApplyOn($this)) {
         $infocom = new Infocom();
         if ($infocom->getFromDBforDevice($this->getType(), $this->fields['id'])) {
             $infocom->delete(array('id' => $infocom->fields['id']));
         }
     }
     // If this type have NETPORT, clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['networkport_types'])) {
         // If we don't use delete, then cleanDBonPurge() is not call and the NetworkPorts are not
         // clean properly
         $networkPortObject = new NetworkPort();
         $networkPortObject->cleanDBonItemDelete($this->getType(), $this->getID());
         // Manage networkportmigration if exists
         if (TableExists('glpi_networkportmigrations')) {
             $networkPortMigObject = new NetworkPortMigration();
             $networkPortMigObject->cleanDBonItemDelete($this->getType(), $this->getID());
         }
     }
     // If this type is RESERVABLE clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['reservation_types'])) {
         $rr = new ReservationItem();
         if ($rr->getFromDBbyItem($this->getType(), $this->fields['id'])) {
             $rr->delete(array('id' => $infocom->fields['id']));
         }
     }
     // If this type have CONTRACT, clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['contract_types'])) {
         $ci = new Contract_Item();
         $ci->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     }
     // If this type have DOCUMENT, clean one associated to purged item
     if (Document::canApplyOn($this)) {
         $di = new Document_Item();
         $di->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     }
     // If this type have NOTEPAD, clean one associated to purged item
     if ($this->usenotepad) {
         $note = new Notepad();
         $note->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     }
 }