本文整理汇总了PHP中Document::getFromDBbyContent方法的典型用法代码示例。如果您正苦于以下问题:PHP Document::getFromDBbyContent方法的具体用法?PHP Document::getFromDBbyContent怎么用?PHP Document::getFromDBbyContent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Document
的用法示例。
在下文中一共展示了Document::getFromDBbyContent方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addFiles
/**
* add files (from $this->input['_filename']) to an ITIL object
* create document if needed
* create link from document to ITIL object
*
* @param $donotif Boolean if we want to raise notification (default 1)
* @param $disablenotif (default 0)
*
* @return array of doc added name
**/
function addFiles($donotif = 1, $disablenotif = 0)
{
global $CFG_GLPI;
if (!isset($this->input['_filename']) || count($this->input['_filename']) == 0) {
return array();
}
$docadded = array();
foreach ($this->input['_filename'] as $key => $file) {
$doc = new Document();
$docitem = new Document_Item();
$docID = 0;
$filename = GLPI_TMP_DIR . "/" . $file;
$input2 = array();
// Crop/Resize image file if needed
if (isset($this->input['_coordinates']) && !empty($this->input['_coordinates'][$key])) {
$image_coordinates = json_decode(urldecode($this->input['_coordinates'][$key]), true);
Toolbox::resizePicture($filename, $filename, $image_coordinates['img_w'], $image_coordinates['img_h'], $image_coordinates['img_y'], $image_coordinates['img_x'], $image_coordinates['img_w'], $image_coordinates['img_h'], 0);
} else {
Toolbox::resizePicture($filename, $filename, 0, 0, 0, 0, 0, 0, 0);
}
//If file tag is present
if (isset($this->input['_tag_filename']) && !empty($this->input['_tag_filename'][$key])) {
$this->input['_tag'][$key] = $this->input['_tag_filename'][$key];
}
// Check for duplicate
if ($doc->getFromDBbyContent($this->fields["entities_id"], $filename)) {
if (!$doc->fields['is_blacklisted']) {
$docID = $doc->fields["id"];
}
// File already exist, we replace the tag by the existing one
if (isset($this->input['_tag'][$key]) && $docID > 0 && isset($this->input['content'])) {
$this->input['content'] = preg_replace('/' . Document::getImageTag($this->input['_tag'][$key]) . '/', Document::getImageTag($doc->fields["tag"]), $this->input['content']);
$docadded[$docID]['tag'] = $doc->fields["tag"];
}
} else {
//TRANS: Default document to files attached to tickets : %d is the ticket id
$input2["name"] = addslashes(sprintf(__('Document Ticket %d'), $this->getID()));
if ($this->getType() == 'Ticket') {
$input2["tickets_id"] = $this->getID();
// Insert image tag
if (isset($this->input['_tag'][$key])) {
$input2["tag"] = $this->input['_tag'][$key];
}
}
$input2["entities_id"] = $this->fields["entities_id"];
$input2["documentcategories_id"] = $CFG_GLPI["documentcategories_id_forticket"];
$input2["_only_if_upload_succeed"] = 1;
$input2["entities_id"] = $this->fields["entities_id"];
$input2["_filename"] = array($file);
$docID = $doc->add($input2);
}
if ($docID > 0) {
if ($docitem->add(array('documents_id' => $docID, '_do_notif' => $donotif, '_disablenotif' => $disablenotif, 'itemtype' => $this->getType(), 'items_id' => $this->getID()))) {
$docadded[$docID]['data'] = sprintf(__('%1$s - %2$s'), stripslashes($doc->fields["name"]), stripslashes($doc->fields["filename"]));
if (isset($input2["tag"])) {
$docadded[$docID]['tag'] = $input2["tag"];
unset($this->input['_filename'][$key]);
unset($this->input['_tag'][$key]);
}
if (isset($this->input['_coordinates'][$key])) {
unset($this->input['_coordinates'][$key]);
}
}
}
// Only notification for the first New doc
$donotif = 0;
}
// Ticket update
if (isset($this->input['content'])) {
if ($CFG_GLPI["use_rich_text"]) {
$this->input['content'] = $this->convertTagToImage($this->input['content'], true, $docadded);
$this->input['_forcenotif'] = true;
} else {
$this->fields['content'] = $this->setSimpleTextContent($this->input['content']);
$this->updateInDB(array('content'));
}
}
return $docadded;
}
示例2: addFiles
/**
* add files (from $_FILES) to a ticket
* create document if needed
* create link from document to ticket
*
* @param $id of the ticket
*
* @return array of doc added name
**/
function addFiles($id)
{
global $LANG, $CFG_GLPI;
if (!isset($_FILES)) {
return array();
}
$docadded = array();
$doc = new Document();
$docitem = new Document_Item();
// add Document if exists
if (isset($_FILES['multiple'])) {
unset($_FILES['multiple']);
$TMPFILE = $_FILES;
} else {
$TMPFILE = array($_FILES);
}
foreach ($TMPFILE as $_FILES) {
if (isset($_FILES['filename']) && count($_FILES['filename']) > 0 && $_FILES['filename']["size"] > 0) {
// Check for duplicate
if ($doc->getFromDBbyContent($this->fields["entities_id"], $_FILES['filename']['tmp_name'])) {
$docID = $doc->fields["id"];
} else {
$input2 = array();
$input2["name"] = addslashes($LANG['tracking'][24] . " {$id}");
$input2["tickets_id"] = $id;
$input2["entities_id"] = $this->fields["entities_id"];
$input2["documentcategories_id"] = $CFG_GLPI["documentcategories_id_forticket"];
$input2["_only_if_upload_succeed"] = 1;
$input2["entities_id"] = $this->fields["entities_id"];
$docID = $doc->add($input2);
}
if ($docID > 0) {
if ($docitem->add(array('documents_id' => $docID, 'itemtype' => $this->getType(), 'items_id' => $id))) {
$docadded[] = stripslashes($doc->fields["name"] . " - " . $doc->fields["filename"]);
}
}
} else {
if (!empty($_FILES['filename']['name']) && isset($_FILES['filename']['error']) && $_FILES['filename']['error']) {
addMessageAfterRedirect($LANG['document'][46], false, ERROR);
}
}
}
unset($_FILES);
return $docadded;
}
示例3: addFiles
/**
* add files (from $_FILES) to an ITIL object
* create document if needed
* create link from document to ITIL object
*
* @param $id Integer ID of the ITIL object
* @param $donotif Boolean if we want to raise notification (default 1)
*
* @return array of doc added name
**/
function addFiles($id, $donotif = 1)
{
global $CFG_GLPI;
if (!isset($_FILES) || !isset($_FILES['filename'])) {
return array();
}
$docadded = array();
$doc = new Document();
$docitem = new Document_Item();
// if multiple files are uploaded
$TMPFILE = array();
if (is_array($_FILES['filename']['name'])) {
foreach ($_FILES['filename']['name'] as $key => $filename) {
if (!empty($filename)) {
$TMPFILE[$key]['filename']['name'] = $filename;
$TMPFILE[$key]['filename']['type'] = $_FILES['filename']['type'][$key];
$TMPFILE[$key]['filename']['tmp_name'] = $_FILES['filename']['tmp_name'][$key];
$TMPFILE[$key]['filename']['error'] = $_FILES['filename']['error'][$key];
$TMPFILE[$key]['filename']['size'] = $_FILES['filename']['size'][$key];
}
}
} else {
$TMPFILE = array($_FILES);
}
foreach ($TMPFILE as $_FILES) {
if (isset($_FILES['filename']) && count($_FILES['filename']) > 0 && $_FILES['filename']["size"] > 0) {
// Check for duplicate
if ($doc->getFromDBbyContent($this->fields["entities_id"], $_FILES['filename']['tmp_name'])) {
$docID = $doc->fields["id"];
} else {
$input2 = array();
//TRANS: Default document to files attached to tickets : %d is the ticket id
$input2["name"] = addslashes(sprintf(__('Document Ticket %d'), $id));
if ($this->getType() == 'Ticket') {
$input2["tickets_id"] = $id;
}
$input2["entities_id"] = $this->fields["entities_id"];
$input2["documentcategories_id"] = $CFG_GLPI["documentcategories_id_forticket"];
$input2["_only_if_upload_succeed"] = 1;
$input2["entities_id"] = $this->fields["entities_id"];
$docID = $doc->add($input2);
}
if ($docID > 0) {
if ($docitem->add(array('documents_id' => $docID, '_do_notif' => $donotif, 'itemtype' => $this->getType(), 'items_id' => $id))) {
$docadded[] = sprintf(__('%1$s - %2$s'), stripslashes($doc->fields["name"]), stripslashes($doc->fields["filename"]));
}
}
} else {
if (!empty($_FILES['filename']['name']) && isset($_FILES['filename']['error']) && $_FILES['filename']['error']) {
Session::addMessageAfterRedirect(__('Failed to send the file (probably too large)'), false, ERROR);
}
}
// Only notification for the first New doc
$donotif = 0;
}
unset($_FILES);
return $docadded;
}
示例4: methodAddTicketDocument
/**
* Add a document to a existing ticket
* for an authenticated user
*
* @param $params array of options (ticket, uri, name, base64, comment)
* only one of uri and base64 must be set
* name is mandatory when base64 set, for extension check (filename)
* @param $protocol the communication protocol used
*
* @return array of hashtable
**/
static function methodAddTicketDocument($params, $protocol)
{
global $DB, $CFG_GLPI;
if (isset($params['help'])) {
return array('ticket' => 'integer,mandatory', 'uri' => 'string,optional', 'base64' => 'string,optional', 'content' => 'string,optional', 'close' => 'bool,optional', 'reopen' => 'bool,optional', 'source' => 'string,optional', 'private' => 'bool,optional', 'help' => 'bool,optional');
}
if (!Session::getLoginUserID()) {
return self::Error($protocol, WEBSERVICES_ERROR_NOTAUTHENTICATED);
}
$ticket = new Ticket();
if (!isset($params['ticket'])) {
return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'ticket');
}
if (!is_numeric($params['ticket'])) {
return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'ticket');
}
if (!$ticket->can($params['ticket'], 'r')) {
return self::Error($protocol, WEBSERVICES_ERROR_NOTFOUND);
}
if (in_array($ticket->fields["status"], $ticket->getClosedStatusArray())) {
return self::Error($protocol, WEBSERVICES_ERROR_NOTALLOWED, '', 'closed ticket');
}
if (!$ticket->canAddFollowups()) {
return self::Error($protocol, WEBSERVICES_ERROR_NOTALLOWED, '', 'access denied');
}
if (isset($params['name']) && !empty($params['name'])) {
$document_name = addslashes($params['name']);
} else {
$document_name = addslashes(sprintf(__('%1$s %2$s'), _x('phone', 'Number'), $ticket->fields['id']));
}
$filename = tempnam(GLPI_DOC_DIR . '/_tmp', 'PWS');
$response = parent::uploadDocument($params, $protocol, $filename, $document_name);
//An error occured during document upload
if (parent::isError($protocol, $response)) {
return $response;
}
$doc = new Document();
$documentitem = new Document_Item();
$docid = $doc->getFromDBbyContent($ticket->fields["entities_id"], $filename);
if ($docid) {
$input = array('itemtype' => $ticket->getType(), 'items_id' => $ticket->getID(), 'documents_id' => $doc->getID());
if ($DB->request('glpi_documents_items', $input)->numrows()) {
return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '', 'document already associated to this ticket');
}
$new = $documentitem->add($input);
} else {
$input = array('itemtype' => $ticket->getType(), 'items_id' => $ticket->getID(), 'tickets_id' => $ticket->getID(), 'entities_id' => $ticket->getEntityID(), 'is_recursive' => $ticket->isRecursive(), 'documentcategories_id' => $CFG_GLPI["documentcategories_id_forticket"]);
$new = $doc->add($input);
}
// to not add it twice during followup
unset($_FILES['filename']);
if (!$new) {
return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '', self::getDisplayError());
}
if (isset($params['comment']) && !empty($params['comment'])) {
$params['content'] = $params['comment'];
unset($params['comment']);
}
if (isset($params['content']) && !empty($params['content'])) {
return self::methodAddTicketFollowup($params, $protocol);
}
return self::methodGetTicket(array('ticket' => $params['ticket']), $protocol);
}
示例5: Document
--------------------------------------------------------------------------
*/
// ----------------------------------------------------------------------
// Original Author of file: Julien Dombre
// Purpose of file:
// ----------------------------------------------------------------------
define('GLPI_ROOT', '..');
include GLPI_ROOT . "/inc/includes.php";
if (!isset($_GET["id"])) {
$_GET["id"] = -1;
}
$doc = new Document();
$documentitem = new Document_Item();
if (isset($_POST["add"])) {
$doc->check(-1, 'w', $_POST);
if (isset($_POST['itemtype']) && isset($_POST['items_id']) && isset($_FILES['filename']['tmp_name']) && $doc->getFromDBbyContent($_POST["entities_id"], $_FILES['filename']['tmp_name'])) {
$documentitem->add(array('documents_id' => $doc->fields['id'], 'itemtype' => $_POST['itemtype'], 'items_id' => $_POST['items_id']));
} else {
$newID = $doc->add($_POST);
$name = "";
if (isset($_POST["name"])) {
$name = $_POST["name"];
} else {
if (isset($_FILES['filename']) && isset($_FILES['filename']['name'])) {
$name = $_FILES['filename']['name'];
}
}
Event::log($newID, "documents", 4, "document", $_SESSION["glpiname"] . " " . $LANG['log'][20] . " " . $name . ".");
}
glpi_header($_SERVER['HTTP_REFERER']);
} else {
示例6: addFilesTickets
function addFilesTickets($id, $question_name, $entities_id)
{
global $LANG, $CFG_GLPI;
$docadded = array();
$doc = new Document();
$docitem = new Document_Item();
// if multiple files are uploaded
$TMPFILE = array();
if (is_array($_FILES[$question_name]['name'])) {
$_FILES['filename'] = $_FILES[$question_name];
foreach ($_FILES[$question_name]['name'] as $key => $filename) {
if (!empty($filename)) {
$TMPFILE[$key]['filename']['name'] = $filename;
$TMPFILE[$key]['filename']['type'] = $_FILES['filename']['type'][$key];
$TMPFILE[$key]['filename']['tmp_name'] = $_FILES['filename']['tmp_name'][$key];
$TMPFILE[$key]['filename']['error'] = $_FILES['filename']['error'][$key];
$TMPFILE[$key]['filename']['size'] = $_FILES['filename']['size'][$key];
}
}
} else {
$TMPFILE = array($_FILES);
}
foreach ($TMPFILE as $_FILES) {
if (isset($_FILES[$question_name]) && count($_FILES[$question_name]) > 0 && $_FILES[$question_name]["size"] > 0) {
$_FILES['filename'] = $_FILES[$question_name];
// Check for duplicate
if ($doc->getFromDBbyContent($entities_id, $_FILES['filename']['tmp_name'])) {
$docID = $doc->fields["id"];
} else {
$input2 = array();
$input2["name"] = addslashes(__('Document Ticket') . " {$id}");
$input2["tickets_id"] = $id;
$input2["entities_id"] = $entities_id;
$input2["documentcategories_id"] = $CFG_GLPI["documentcategories_id_forticket"];
$input2["_only_if_upload_succeed"] = 1;
$input2["entities_id"] = $entities_id;
$docID = $doc->add($input2);
if ($docID > 0) {
if ($docitem->add(array('documents_id' => $docID, 'itemtype' => 'Ticket', 'items_id' => $id))) {
$docadded[] = stripslashes($doc->fields["name"] . " - " . $doc->fields["filename"]);
}
}
}
}
}
unset($_FILES['filename']);
return true;
}