本文整理汇总了PHP中DocumentRevision类的典型用法代码示例。如果您正苦于以下问题:PHP DocumentRevision类的具体用法?PHP DocumentRevision怎么用?PHP DocumentRevision使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DocumentRevision类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveFile
function saveFile($document, $portal = false)
{
global $sugar_config;
$focus = new Document();
if (!empty($document['id'])) {
$focus->retrieve($document['id']);
} else {
return '-1';
}
if (!empty($document['file'])) {
$decodedFile = base64_decode($document['file']);
$this->upload_file->set_for_soap($document['filename'], $decodedFile);
$ext_pos = strrpos($this->upload_file->stored_file_name, ".");
$this->upload_file->file_ext = substr($this->upload_file->stored_file_name, $ext_pos + 1);
if (in_array($this->upload_file->file_ext, $sugar_config['upload_badext'])) {
$this->upload_file->stored_file_name .= ".txt";
$this->upload_file->file_ext = "txt";
}
$revision = new DocumentRevision();
$revision->filename = $this->upload_file->get_stored_file_name();
$revision->file_mime_type = $this->upload_file->getMimeSoap($revision->filename);
$revision->file_ext = $this->upload_file->file_ext;
//$revision->document_name = ;
$revision->revision = $document['revision'];
$revision->document_id = $document['id'];
$revision->save();
$focus->document_revision_id = $revision->id;
$focus->save();
$return_id = $revision->id;
$this->upload_file->final_move($revision->id);
} else {
return '-1';
}
return $return_id;
}
示例2: getTechnicalDescriptions
function getTechnicalDescriptions()
{
$attachmentIds = explode(' ', trim($this->attachmentsequence));
$attachments = array();
foreach ($attachmentIds as $id) {
$attachment_data = array();
$revision = new DocumentRevision();
if (!$revision->retrieve($id)) {
$attachment = new Document();
if ($attachment->retrieve($id)) {
if ($attachment->subcategory_id == 'Technical') {
//$attachment_data = array();
$attachment_data["id"] = $attachment->id;
$attachment_data["document_name"] = $attachment->document_name;
$attachment_data["document_revision_id"] = $attachment->document_revision_id;
// $attachment_data["doc_status"] = 'new';
$attachments[] = $attachment_data;
}
}
} else {
$attachment = new Document();
if ($attachment->retrieve($revision->document_id)) {
if ($attachment->subcategory_id == 'Technical') {
//$attachment_data = array();
$attachment_data["id"] = $attachment->id;
$attachment_data["document_name"] = $attachment->document_name . '_rev.' . $revision->revision;
$attachment_data["document_revision_id"] = $revision->id;
// $attachment_data["doc_status"] = 'new';
$attachments[] = $attachment_data;
}
}
}
}
return $attachments;
}
示例3: get_all_linked_attachment_revisions
function get_all_linked_attachment_revisions($attachmentsequence)
{
$attachmentIds = explode(' ', trim($attachmentsequence));
$attachments = array();
foreach ($attachmentIds as $id) {
$revision = new DocumentRevision();
if (!$revision->retrieve($id)) {
// if in old format try to recover by document id
$attachment = new Document();
if ($attachment->retrieve($id)) {
$attachment->revision = '';
$attachment->doc_rev_id = '';
$attachments[] = $attachment;
}
} else {
$attachment = new Document();
if ($attachment->retrieve($revision->document_id)) {
$attachment->revision = $revision->revision;
$attachment->doc_rev_id = $revision->id;
$attachments[] = $attachment;
}
}
}
return $attachments;
}
示例4: attachmentFromSugarBean
/**
* Constructs an attachment from the SugarBean that is passed in.
*
* @static
* @access public
* @param SugarBean $bean required
* @return Attachment
* @throws MailerException
*/
public static function attachmentFromSugarBean(SugarBean $bean)
{
$filePath = null;
$fileName = null;
$mimeType = "";
if ($bean instanceof Document) {
if (empty($bean->id)) {
throw new MailerException("Invalid Attachment: document not found", MailerException::InvalidAttachment);
}
$document_revision_id = $bean->document_revision_id;
$documentRevision = new DocumentRevision();
if (!empty($document_revision_id)) {
$documentRevision->retrieve($bean->document_revision_id);
}
if (empty($document_revision_id) || $documentRevision->id != $document_revision_id) {
throw new MailerException("Invalid Attachment: Document with Id (" . $bean->id . ") contains an invalid or empty revision id: (" . $document_revision_id . ")", MailerException::InvalidAttachment);
}
$bean = $documentRevision;
}
$beanName = get_class($bean);
switch ($beanName) {
case "Note":
case "DocumentRevision":
$filePath = rtrim(SugarConfig::getInstance()->get('upload_dir', 'upload'), '/\\') . '/' . $bean->id;
$fileName = empty($bean->filename) ? $bean->name : $bean->filename;
$mimeType = empty($bean->file_mime_type) ? $mimeType : $bean->file_mime_type;
break;
default:
throw new MailerException("Invalid Attachment: SugarBean '{$beanName}' not supported as an Email Attachment", MailerException::InvalidAttachment);
break;
}
// Path must Exist and Must be a Regular File
if (!is_file($filePath)) {
throw new MailerException("Invalid Attachment: file not found: {$filePath}", MailerException::InvalidAttachment);
}
$attachment = new Attachment($filePath, $fileName, Encoding::Base64, $mimeType);
return $attachment;
}
示例5: display
/**
* @see SugarView::display()
*/
public function display()
{
global $app_list_strings, $mod_strings;
$load_signed = false;
if (isset($_REQUEST['load_signed_id']) && !empty($_REQUEST['load_signed_id'])) {
$load_signed = true;
if (isset($_REQUEST['record'])) {
$this->bean->related_doc_id = $_REQUEST['record'];
}
if (isset($_REQUEST['selected_revision_id'])) {
$this->bean->related_doc_rev_id = $_REQUEST['selected_revision_id'];
}
$this->bean->id = null;
$this->bean->document_name = null;
$this->bean->filename = null;
$this->bean->is_template = 0;
}
//if
if (!empty($this->bean->id) || empty($this->bean->id) && !empty($_REQUEST['record']) && !empty($_REQUEST['action']) && strtolower($_REQUEST['action']) == 'quickedit') {
$this->ss->assign("FILE_OR_HIDDEN", "hidden");
if (!$this->ev->isDuplicate) {
$this->ss->assign("DISABLED", "disabled");
}
} else {
$this->bean->revision = 1;
$this->ss->assign("FILE_OR_HIDDEN", "file");
}
$popup_request_data = array('call_back_function' => 'document_set_return', 'form_name' => 'EditView', 'field_to_name_array' => array('id' => 'related_doc_id', 'document_name' => 'related_document_name'));
$json = getJSONobj();
$this->ss->assign('encoded_document_popup_request_data', $json->encode($popup_request_data));
//get related document name.
if (!empty($this->bean->related_doc_id)) {
$this->ss->assign("RELATED_DOCUMENT_NAME", Document::get_document_name($this->bean->related_doc_id));
$this->ss->assign("RELATED_DOCUMENT_ID", $this->bean->related_doc_id);
if (!empty($this->bean->related_doc_rev_id)) {
$this->ss->assign("RELATED_DOCUMENT_REVISION_OPTIONS", get_select_options_with_id(DocumentRevision::get_document_revisions($this->bean->related_doc_id), $this->bean->related_doc_rev_id));
} else {
$this->ss->assign("RELATED_DOCUMENT_REVISION_OPTIONS", get_select_options_with_id(DocumentRevision::get_document_revisions($this->bean->related_doc_id), ''));
}
} else {
$this->ss->assign("RELATED_DOCUMENT_REVISION_DISABLED", "disabled");
}
//set parent information in the form.
if (isset($_REQUEST['parent_id'])) {
$this->ss->assign("PARENT_ID", $_REQUEST['parent_id']);
}
//if
if (isset($_REQUEST['parent_name'])) {
$this->ss->assign("PARENT_NAME", $_REQUEST['parent_name']);
if (!empty($_REQUEST['parent_type'])) {
switch (strtolower($_REQUEST['parent_type'])) {
case "contracts":
$this->ss->assign("LBL_PARENT_NAME", $mod_strings['LBL_CONTRACT_NAME']);
break;
//todo remove leads case.
//todo remove leads case.
case "leads":
$this->ss->assign("LBL_PARENT_NAME", $mod_strings['LBL_CONTRACT_NAME']);
break;
}
//switch
}
//if
}
//if
if (isset($_REQUEST['parent_type'])) {
$this->ss->assign("PARENT_TYPE", $_REQUEST['parent_type']);
}
if ($load_signed) {
$this->ss->assign("RELATED_DOCUMENT_REVISION_DISABLED", "disabled");
$this->ss->assign("RELATED_DOCUMENT_BUTTON_AVAILABILITY", "hidden");
$this->ss->assign("LOAD_SIGNED_ID", $_REQUEST['load_signed_id']);
} else {
$this->ss->assign("RELATED_DOCUMENT_BUTTON_AVAILABILITY", "button");
}
//if-else
parent::display();
}
示例6: fill_in_additional_detail_fields
function fill_in_additional_detail_fields()
{
global $theme;
global $current_language;
global $timedate;
global $locale;
parent::fill_in_additional_detail_fields();
$mod_strings = return_module_language($current_language, 'Documents');
if (!empty($this->document_revision_id)) {
$query = "SELECT users.first_name AS first_name, users.last_name AS last_name, document_revisions.date_entered AS rev_date,\n \t document_revisions.filename AS filename, document_revisions.revision AS revision,\n \t document_revisions.file_ext AS file_ext, document_revisions.file_mime_type AS file_mime_type\n \t FROM users, document_revisions\n \t WHERE users.id = document_revisions.created_by AND document_revisions.id = '{$this->document_revision_id}'";
$result = $this->db->query($query);
$row = $this->db->fetchByAssoc($result);
//populate name
if (isset($this->document_name)) {
$this->name = $this->document_name;
}
if (isset($row['filename'])) {
$this->filename = $row['filename'];
}
//$this->latest_revision = $row['revision'];
if (isset($row['revision'])) {
$this->revision = $row['revision'];
}
//image is selected based on the extension name <ext>_icon_inline, extension is stored in document_revisions.
//if file is not found then default image file will be used.
global $img_name;
global $img_name_bare;
if (!empty($row['file_ext'])) {
$img_name = SugarThemeRegistry::current()->getImageURL(strtolower($row['file_ext']) . "_image_inline.gif");
$img_name_bare = strtolower($row['file_ext']) . "_image_inline";
}
}
//set default file name.
if (!empty($img_name) && file_exists($img_name)) {
$img_name = $img_name_bare;
} else {
$img_name = "def_image_inline";
//todo change the default image.
}
if ($this->ACLAccess('DetailView')) {
if (!empty($this->doc_type) && $this->doc_type != 'Sugar' && !empty($this->doc_url)) {
$file_url = "<a href='" . $this->doc_url . "' target='_blank'>" . SugarThemeRegistry::current()->getImage($this->doc_type . '_image_inline', 'border="0"', null, null, '.png', $mod_strings['LBL_LIST_VIEW_DOCUMENT']) . "</a>";
} else {
$file_url = "<a href='index.php?entryPoint=download&id={$this->document_revision_id}&type=Documents' target='_blank'>" . SugarThemeRegistry::current()->getImage($img_name, 'border="0"', null, null, '.gif', $mod_strings['LBL_LIST_VIEW_DOCUMENT']) . "</a>";
}
$this->file_url = $file_url;
$this->file_url_noimage = "index.php?entryPoint=download&type=Documents&id={$this->document_revision_id}";
} else {
$this->file_url = "";
$this->file_url_noimage = "";
}
//get last_rev_by user name.
if (!empty($row)) {
$this->last_rev_created_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name']);
$this->last_rev_create_date = $timedate->to_display_date_time($this->db->fromConvert($row['rev_date'], 'datetime'));
$this->last_rev_mime_type = $row['file_mime_type'];
}
global $app_list_strings;
if (!empty($this->status_id)) {
//_pp($this->status_id);
$this->status = $app_list_strings['document_status_dom'][$this->status_id];
}
if (!empty($this->related_doc_id)) {
$this->related_doc_name = Document::get_document_name($this->related_doc_id);
$this->related_doc_rev_number = DocumentRevision::get_document_revision_name($this->related_doc_rev_id);
}
}
示例7: handleSave
//.........这里部分代码省略.........
$i = preg_replace("/email_attachment(.+)/", '$1', $key);
$upload_file = new UploadFile($key);
if (isset($_FILES[$key]) && $upload_file->confirm_upload() && preg_match("/^email_attachment/", $key)) {
$note->filename = $upload_file->get_stored_file_name();
$note->file = $upload_file;
$note->name = $mod_strings['LBL_EMAIL_ATTACHMENT'] . ': ' . $note->file->original_file_name;
if (isset($_REQUEST['embedded' . $i]) && !empty($_REQUEST['embedded' . $i])) {
if ($_REQUEST['embedded' . $i] == 'true') {
$note->embed_flag = true;
} else {
$note->embed_flag = false;
}
}
array_push($focus->attachments, $note);
}
}
$focus->saved_attachments = array();
foreach ($focus->attachments as $note) {
if (!empty($note->id) && $note->new_with_id === FALSE) {
if (empty($_REQUEST['old_id'])) {
array_push($focus->saved_attachments, $note);
} else {
// we're duplicating a template with attachments
// dupe the file, create a new note, assign the note to the new template
$newNote = new Note();
$newNote->retrieve($note->id);
$newNote->id = create_guid();
$newNote->parent_id = $focus->id;
$newNote->new_with_id = true;
$newNote->date_modified = '';
$newNote->date_entered = '';
$newNoteId = $newNote->save();
UploadFile::duplicate_file($note->id, $newNoteId, $note->filename);
}
continue;
}
$note->parent_id = $focus->id;
$note->parent_type = 'Emails';
$note->file_mime_type = $note->file->mime_type;
$note_id = $note->save();
array_push($focus->saved_attachments, $note);
$note->id = $note_id;
if ($note->new_with_id === FALSE) {
$note->file->final_move($note->id);
} else {
$GLOBALS['log']->debug("Not performing final move for note id {$note->id} as it has already been processed");
}
}
//// END NEW ATTACHMENTS
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//// ATTACHMENTS FROM DOCUMENTS
$count = '';
//_pp($_REQUEST);
//_ppd(count($_REQUEST['document']));
if (!empty($_REQUEST['document'])) {
$count = count($_REQUEST['document']);
} else {
$count = 10;
}
for ($i = 0; $i < $count; $i++) {
if (isset($_REQUEST['documentId' . $i]) && !empty($_REQUEST['documentId' . $i])) {
$doc = new Document();
$docRev = new DocumentRevision();
$docNote = new Note();
$doc->retrieve($_REQUEST['documentId' . $i]);
$docRev->retrieve($doc->document_revision_id);
array_push($focus->saved_attachments, $docRev);
$docNote->name = $doc->document_name;
$docNote->filename = $docRev->filename;
$docNote->description = $doc->description;
$docNote->parent_id = $focus->id;
$docNote->parent_type = 'Emails';
$docNote->file_mime_type = $docRev->file_mime_type;
$docId = $docNote = $docNote->save();
UploadFile::duplicate_file($docRev->id, $docId, $docRev->filename);
}
}
//// END ATTACHMENTS FROM DOCUMENTS
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//// REMOVE ATTACHMENTS
if (isset($_REQUEST['remove_attachment']) && !empty($_REQUEST['remove_attachment'])) {
foreach ($_REQUEST['remove_attachment'] as $noteId) {
$q = 'UPDATE notes SET deleted = 1 WHERE id = \'' . $noteId . '\'';
$focus->db->query($q);
}
}
//// END REMOVE ATTACHMENTS
///////////////////////////////////////////////////////////////////////////
//// END ATTACHMENT HANDLING
///////////////////////////////////////////////////////////////////////////////
clear_register_value('select_array', $focus->object_name);
if ($redirect) {
$GLOBALS['log']->debug("Saved record with id of " . $return_id);
handleRedirect($return_id, "EmailTemplates");
} else {
return $focus;
}
}
示例8: handleSave
function handleSave($prefix, $redirect = true, $useRequired = false)
{
require_once 'modules/EmailTemplates/EmailTemplate.php';
require_once 'modules/Documents/Document.php';
require_once 'modules/DocumentRevisions/DocumentRevision.php';
require_once 'modules/Notes/Note.php';
require_once 'include/formbase.php';
require_once 'include/upload_file.php';
global $upload_maxsize, $upload_dir;
global $mod_strings;
$focus = new EmailTemplate();
if ($useRequired && !checkRequired($prefix, array_keys($focus->required_fields))) {
return null;
}
$focus = populateFromPost($prefix, $focus);
if (!$focus->ACLAccess('Save')) {
ACLController::displayNoAccess(true);
sugar_cleanup(true);
}
if (!isset($_REQUEST['published'])) {
$focus->published = 'off';
}
$return_id = $focus->save();
///////////////////////////////////////////////////////////////////////////////
//// ATTACHMENT HANDLING
///////////////////////////////////////////////////////////////////////////
//// ADDING NEW ATTACHMENTS
$max_files_upload = 10;
if (!empty($focus->id)) {
$note = new Note();
$where = "notes.parent_id='{$focus->id}'";
if (!empty($_REQUEST['old_id'])) {
// to support duplication of email templates
$where .= " OR notes.parent_id='" . $_REQUEST['old_id'] . "'";
}
$notes_list = $note->get_full_list("", $where, true);
}
if (!isset($notes_list)) {
$notes_list = array();
}
if (!is_array($focus->attachments)) {
// PHP5 does not auto-create arrays(). Need to initialize it here.
$focus->attachments = array();
}
$focus->attachments = array_merge($focus->attachments, $notes_list);
for ($i = 0; $i < $max_files_upload; $i++) {
$note = new Note();
$upload_file = new UploadFile('email_attachment' . $i);
if ($upload_file == -1) {
continue;
}
if (isset($_FILES['email_attachment' . $i]) && $upload_file->confirm_upload()) {
$note->filename = $upload_file->get_stored_file_name();
$note->file = $upload_file;
$note->name = $mod_strings['LBL_EMAIL_ATTACHMENT'] . ': ' . $note->file->original_file_name;
array_push($focus->attachments, $note);
}
}
$focus->saved_attachments = array();
foreach ($focus->attachments as $note) {
if (!empty($note->id)) {
if (empty($_REQUEST['old_id'])) {
// to support duplication of email templates
array_push($focus->saved_attachments, $note);
} else {
// we're duplicating a template with attachments
// dupe the file, create a new note, assign the note to the new template
$newNote = new Note();
$newNote->retrieve($note->id);
$newNote->id = create_guid();
$newNote->parent_id = $focus->id;
$newNote->new_with_id = true;
$newNoteId = $newNote->save();
$dupeFile = new UploadFile('duplicate');
$dupeFile->duplicate_file($note->id, $newNoteId, $note->filename);
}
continue;
}
$note->parent_id = $focus->id;
$note->parent_type = 'Emails';
$note->file_mime_type = $note->file->mime_type;
$note_id = $note->save();
array_push($focus->saved_attachments, $note);
$note->id = $note_id;
$note->file->final_move($note->id);
}
//// END NEW ATTACHMENTS
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//// ATTACHMENTS FROM DOCUMENTS
for ($i = 0; $i < 10; $i++) {
if (isset($_REQUEST['documentId' . $i]) && !empty($_REQUEST['documentId' . $i])) {
$doc = new Document();
$docRev = new DocumentRevision();
$docNote = new Note();
$noteFile = new UploadFile('none');
$doc->retrieve($_REQUEST['documentId' . $i]);
$docRev->retrieve($doc->document_revision_id);
array_push($focus->saved_attachments, $docRev);
$docNote->name = $doc->document_name;
//.........这里部分代码省略.........
示例9: get_document_revision
/**
* This method is used as a result of the .htaccess lock down on the cache directory. It will allow a
* properly authenticated user to download a document that they have proper rights to download.
*
* @param String $session -- Session ID returned by a previous call to login.
* @param String $id -- ID of the document revision to obtain
* @return return_document_revision - this is a complex type as defined in SoapTypes.php
*/
function get_document_revision($session, $id)
{
global $sugar_config;
$error = new SoapError();
if (!validate_authenticated($session)) {
$error->set_error('invalid_login');
return array('id' => -1, 'error' => $error->get_soap_array());
}
$dr = new DocumentRevision();
$dr->retrieve($id);
if (!empty($dr->filename)) {
$filename = "upload://{$dr->id}";
$contents = base64_encode(sugar_file_get_contents($filename));
return array('document_revision' => array('id' => $dr->id, 'document_name' => $dr->document_name, 'revision' => $dr->revision, 'filename' => $dr->filename, 'file' => $contents), 'error' => $error->get_soap_array());
} else {
$error->set_error('no_records');
return array('id' => -1, 'error' => $error->get_soap_array());
}
}
示例10: get_select_options_with_id
if (isset($focus->template_type)) {
$xtpl->assign("TEMPLATE_TYPE_OPTIONS", get_select_options_with_id($app_list_strings['document_template_type_dom'], $focus->template_type));
} else {
$xtpl->assign("TEMPLATE_TYPE_OPTIONS", get_select_options_with_id($app_list_strings['document_template_type_dom'], ''));
}
$popup_request_data = array('call_back_function' => 'document_set_return', 'form_name' => 'EditView', 'field_to_name_array' => array('id' => 'related_doc_id', 'document_name' => 'related_document_name'));
$json = getJSONobj();
$xtpl->assign('encoded_document_popup_request_data', $json->encode($popup_request_data));
//get related document name.
if (!empty($focus->related_doc_id)) {
$xtpl->assign("RELATED_DOCUMENT_NAME", Document::get_document_name($focus->related_doc_id));
$xtpl->assign("RELATED_DOCUMENT_ID", $focus->related_doc_id);
if (!empty($focus->related_doc_rev_id)) {
$xtpl->assign("RELATED_DOCUMENT_REVISION_OPTIONS", get_select_options_with_id(DocumentRevision::get_document_revisions($focus->related_doc_id), $focus->related_doc_rev_id));
} else {
$xtpl->assign("RELATED_DOCUMENT_REVISION_OPTIONS", get_select_options_with_id(DocumentRevision::get_document_revisions($focus->related_doc_id), ''));
}
} else {
$xtpl->assign("RELATED_DOCUMENT_REVISION_DISABLED", "disabled");
}
//set parent information in the form.
if (isset($_REQUEST['parent_id'])) {
$xtpl->assign("PARENT_ID", $_REQUEST['parent_id']);
}
if (isset($_REQUEST['parent_name'])) {
$xtpl->assign("PARENT_NAME", $_REQUEST['parent_name']);
if (!empty($_REQUEST['parent_type'])) {
switch (strtolower($_REQUEST['parent_type'])) {
case "contracts":
$xtpl->assign("LBL_PARENT_NAME", $mod_strings['LBL_CONTRACT_NAME']);
break;
示例11: get_document_revision
/**
* This method is used as a result of the .htaccess lock down on the cache directory. It will allow a
* properly authenticated user to download a document that they have proper rights to download.
*
* @param String $session -- Session ID returned by a previous call to login.
* @param String $id -- ID of the document revision to obtain
* @return new_return_document_revision - Array String 'id' -- The ID of the document revision containing the attachment
* String document_name - The name of the document
* String revision - The revision value for this revision
* String 'filename' -- The file name of the attachment
* Binary 'file' -- The binary contents of the file.
* @exception 'SoapFault' -- The SOAP error, if any
*/
function get_document_revision($session, $id)
{
$GLOBALS['log']->info('Begin: SugarWebServiceImpl->get_document_revision');
global $sugar_config;
$error = new SoapError();
if (!self::$helperObject->checkSessionAndModuleAccess($session, 'invalid_session', '', '', '', $error)) {
$GLOBALS['log']->info('End: SugarWebServiceImpl->get_document_revision');
return;
}
// if
require_once 'modules/DocumentRevisions/DocumentRevision.php';
$dr = new DocumentRevision();
$dr->retrieve($id);
if (!empty($dr->filename)) {
$filename = $sugar_config['upload_dir'] . "/" . $dr->id;
if (filesize($filename) > 0) {
$contents = sugar_file_get_contents($filename);
} else {
$contents = '';
}
$contents = base64_encode($contents);
$GLOBALS['log']->info('End: SugarWebServiceImpl->get_document_revision');
return array('document_revision' => array('id' => $dr->id, 'document_name' => $dr->document_name, 'revision' => $dr->revision, 'filename' => $dr->filename, 'file' => $contents));
} else {
$error->set_error('no_records');
self::$helperObject->setFaultObject($error);
$GLOBALS['log']->info('End: SugarWebServiceImpl->get_document_revision');
}
}
示例12: fill_in_additional_detail_fields
function fill_in_additional_detail_fields()
{
global $theme;
global $current_language;
global $timedate;
global $locale;
parent::fill_in_additional_detail_fields();
$mod_strings = return_module_language($current_language, 'Documents');
$query = "SELECT filename,revision,file_ext FROM document_revisions WHERE id='{$this->document_revision_id}'";
$result = $this->db->query($query);
$row = $this->db->fetchByAssoc($result);
//popuplate filename
if (isset($row['filename'])) {
$this->filename = $row['filename'];
}
//$this->latest_revision = $row['revision'];
if (isset($row['revision'])) {
$this->revision = $row['revision'];
}
//populate the file url.
//image is selected based on the extension name <ext>_icon_inline, extension is stored in document_revisions.
//if file is not found then default image file will be used.
global $img_name;
global $img_name_bare;
if (!empty($row['file_ext'])) {
$img_name = SugarThemeRegistry::current()->getImageURL(strtolower($row['file_ext']) . "_image_inline.gif");
$img_name_bare = strtolower($row['file_ext']) . "_image_inline";
}
//set default file name.
if (!empty($img_name) && file_exists($img_name)) {
$img_name = $img_name_bare;
} else {
$img_name = "def_image_inline";
//todo change the default image.
}
if ($this->ACLAccess('DetailView')) {
$this->file_url = "<a href='index.php?entryPoint=download&id=" . basename(UploadFile::get_url($this->filename, $this->document_revision_id)) . "&type=Documents' target='_blank'>" . SugarThemeRegistry::current()->getImage($img_name, 'alt="' . $mod_strings['LBL_LIST_VIEW_DOCUMENT'] . '" border="0"') . "</a>";
$this->file_url_noimage = basename(UploadFile::get_url($this->filename, $this->document_revision_id));
} else {
$this->file_url = "";
$this->file_url_noimage = "";
}
//get last_rev_by user name.
$query = "SELECT first_name,last_name, document_revisions.date_entered as rev_date FROM users, document_revisions WHERE users.id = document_revisions.created_by and document_revisions.id = '{$this->document_revision_id}'";
$result = $this->db->query($query, true, "Eror fetching user name: ");
$row = $this->db->fetchByAssoc($result);
if (!empty($row)) {
$this->last_rev_created_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name']);
$this->last_rev_create_date = $timedate->to_display_date_time($row['rev_date']);
}
global $app_list_strings;
if (!empty($this->status_id)) {
//_pp($this->status_id);
$this->status = $app_list_strings['document_status_dom'][$this->status_id];
}
$this->related_doc_name = Document::get_document_name($this->related_doc_id);
$this->related_doc_rev_number = DocumentRevision::get_document_revision_name($this->related_doc_rev_id);
$this->save_file = basename($this->file_url_noimage);
}
示例13: getDocumentRevisionNameForDisplay
/**
* Returns a filename based off of the logical (Sugar-side) Document name and combined with the revision. Tailor
* this to needs created by email RFCs, filesystem name conventions, charset conventions etc.
* @param string revId Revision ID if not latest
* @return string formatted name
*/
function getDocumentRevisionNameForDisplay($revId = '')
{
global $sugar_config;
global $current_language;
$localLabels = return_module_language($current_language, 'DocumentRevisions');
// prep - get source Document
$document = new Document();
// use passed revision ID
if (!empty($revId)) {
$tempDoc = new DocumentRevision();
$tempDoc->retrieve($revId);
} else {
$tempDoc = $this;
}
// get logical name
$document->retrieve($tempDoc->document_id);
$logicalName = $document->document_name;
// get revision string
$revString = '';
if (!empty($tempDoc->revision)) {
$revString = "-{$localLabels['LBL_REVISION']}_{$tempDoc->revision}";
}
// get extension
$realFilename = $tempDoc->filename;
$fileExtension_beg = strrpos($realFilename, ".");
$fileExtension = "";
if ($fileExtension_beg > 0) {
$fileExtension = substr($realFilename, $fileExtension_beg + 1);
}
//check to see if this is a file with extension located in "badext"
foreach ($sugar_config['upload_badext'] as $badExt) {
if (strtolower($fileExtension) == strtolower($badExt)) {
//if found, then append with .txt to filename and break out of lookup
//this will make sure that the file goes out with right extension, but is stored
//as a text in db.
$fileExtension .= ".txt";
break;
// no need to look for more
}
}
$fileExtension = "." . $fileExtension;
$return = $logicalName . $revString . $fileExtension;
// apply RFC limitations here
if (mb_strlen($return) > 1024) {
// do something if we find a real RFC issue
}
return $return;
}
示例14: KBDocument
$kbdoc = new KBDocument();
$kbdoc->kbdocument_name = $v['name'];
$kbdoc->status_id = 'Published';
$kbdoc->team_id = 1;
$kbdoc->assigned_user_id = 'seed_will_id';
$kbdoc->active_date = $v['start_date'];
$kbdoc->exp_date = $v['exp_date'];
$kbdoc->is_external_article = 1;
$kbdoc->save();
$kbdocRevision = new KBDocumentRevision();
$kbdocRevision->change_log = translate('DEF_CREATE_LOG', 'KBDocuments');
$kbdocRevision->revision = '1';
$kbdocRevision->kbdocument_id = $kbdoc->id;
$kbdocRevision->latest = true;
$kbdocRevision->save();
$docRevision = new DocumentRevision();
$docRevision->filename = $kbdoc->kbdocument_name;
$docRevision->save();
$kbdocContent = new KBContent();
$kbdocContent->document_revision_id = $docRevision->id;
$kbdocContent->team_id = $kbdoc->team_id;
$kbdocContent->kbdocument_body = $v['body'];
$kbdocContent->save();
$kbdocRevision->kbcontent_id = $kbdocContent->id;
$kbdocRevision->document_revision_id = $docRevision->id;
$kbdocRevision->save();
$kbdoc->kbdocument_revision_id = $kbdocRevision->id;
$kbdoc->save();
foreach ($v['tags'] as $tag) {
$kbdocKBTag = new KBDocumentKBTag();
$kbdocKBTag->kbtag_id = array_search($tag, $kbtags_hash);
示例15: handleSave
//.........这里部分代码省略.........
$upload_file = new UploadFile($key);
if ($upload_file == -1) {
continue;
}
if (isset($_FILES[$key]) && $upload_file->confirm_upload() && preg_match("/^email_attachment/", $key)) {
$note->filename = $upload_file->get_stored_file_name();
$note->file = $upload_file;
$note->name = $mod_strings['LBL_EMAIL_ATTACHMENT'] . ': ' . $note->file->original_file_name;
if (isset($_REQUEST['embedded' . $i]) && !empty($_REQUEST['embedded' . $i])) {
if ($_REQUEST['embedded' . $i] == 'true') {
$note->embed_flag = true;
} else {
$note->embed_flag = false;
}
}
array_push($focus->attachments, $note);
}
}
$focus->saved_attachments = array();
foreach ($focus->attachments as $note) {
if (!empty($note->id)) {
if (empty($_REQUEST['old_id'])) {
// to support duplication of email templates
array_push($focus->saved_attachments, $note);
} else {
// we're duplicating a template with attachments
// dupe the file, create a new note, assign the note to the new template
$newNote = new Note();
$newNote->retrieve($note->id);
$newNote->id = create_guid();
$newNote->parent_id = $focus->id;
$newNote->new_with_id = true;
$newNote->date_modified = '';
$newNote->date_entered = '';
$newNoteId = $newNote->save();
$dupeFile = new UploadFile('duplicate');
$dupeFile->duplicate_file($note->id, $newNoteId, $note->filename);
}
continue;
}
$note->parent_id = $focus->id;
$note->parent_type = 'Emails';
$note->file_mime_type = $note->file->mime_type;
$note_id = $note->save();
array_push($focus->saved_attachments, $note);
$note->id = $note_id;
$note->file->final_move($note->id);
}
//// END NEW ATTACHMENTS
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//// ATTACHMENTS FROM DOCUMENTS
$count = '';
//_pp($_REQUEST);
//_ppd(count($_REQUEST['document']));
if (!empty($_REQUEST['document'])) {
$count = count($_REQUEST['document']);
} else {
$count = 10;
}
for ($i = 0; $i < $count; $i++) {
if (isset($_REQUEST['documentId' . $i]) && !empty($_REQUEST['documentId' . $i])) {
$doc = new Document();
$docRev = new DocumentRevision();
$docNote = new Note();
$noteFile = new UploadFile('none');
$doc->retrieve($_REQUEST['documentId' . $i]);
$docRev->retrieve($doc->document_revision_id);
array_push($focus->saved_attachments, $docRev);
$docNote->name = $doc->document_name;
$docNote->filename = $docRev->filename;
$docNote->description = $doc->description;
$docNote->parent_id = $focus->id;
$docNote->parent_type = 'Emails';
$docNote->file_mime_type = $docRev->file_mime_type;
$docId = $docNote = $docNote->save();
$noteFile->duplicate_file($docRev->id, $docId, $docRev->filename);
}
}
//// END ATTACHMENTS FROM DOCUMENTS
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//// REMOVE ATTACHMENTS
if (isset($_REQUEST['remove_attachment']) && !empty($_REQUEST['remove_attachment'])) {
foreach ($_REQUEST['remove_attachment'] as $noteId) {
$q = 'UPDATE notes SET deleted = 1 WHERE id = \'' . $noteId . '\'';
$focus->db->query($q);
}
}
//// END REMOVE ATTACHMENTS
///////////////////////////////////////////////////////////////////////////
//// END ATTACHMENT HANDLING
///////////////////////////////////////////////////////////////////////////////
if ($redirect) {
$GLOBALS['log']->debug("Saved record with id of " . $return_id);
handleRedirect($return_id, "EmailTemplates");
} else {
return $focus;
}
}