本文整理汇总了PHP中Draft::getAttachmentIds方法的典型用法代码示例。如果您正苦于以下问题:PHP Draft::getAttachmentIds方法的具体用法?PHP Draft::getAttachmentIds怎么用?PHP Draft::getAttachmentIds使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Draft
的用法示例。
在下文中一共展示了Draft::getAttachmentIds方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: update
function update($vars, &$errors)
{
if (!$this->save($this->getId(), $vars, $errors)) {
return false;
}
$this->updateTopics($vars['topics']);
//Delete removed attachments.
$keepers = $vars['files'];
if ($attachments = $this->attachments->getSeparates()) {
foreach ($attachments as $file) {
if ($file['id'] && !in_array($file['id'], $keepers)) {
$this->attachments->delete($file['id']);
}
}
}
// Upload new attachments IF any.
$this->attachments->upload($keepers);
// Inline images (attached to the draft)
$this->attachments->deleteInlines();
$this->attachments->upload(Draft::getAttachmentIds($vars['answer']));
$this->reload();
Signal::send('model.updated', $this);
return true;
}
示例2: add
function add($vars, &$errors)
{
$inst = self::lookup(self::create($vars, $errors));
// Inline images (attached to the draft)
if ($inst) {
$inst->attachments->upload(Draft::getAttachmentIds($inst->getBody()), true);
}
return $inst;
}
示例3: loadDefaultData
/**
* Loads data from the I18N_DIR for the target language into the
* database. This is intended to be done at the time of installation;
* however, care should be taken in this process to ensure that the
* process could be repeated if an administrator wanted to change the
* system language and reload the data.
*/
function loadDefaultData()
{
# notrans -- do not translate the contents of this array
$models = array('department.yaml' => 'Dept::create', 'sla.yaml' => 'SLA::create', 'form.yaml' => 'DynamicForm::create', 'list.yaml' => 'DynamicList::create', 'help_topic.yaml' => 'Topic::create', 'filter.yaml' => 'Filter::create', 'team.yaml' => 'Team::create', 'organization.yaml' => 'Organization::__create', 'ticket_status.yaml' => 'TicketStatus::__create', 'group.yaml' => 'Group::create', 'file.yaml' => 'AttachmentFile::create', 'sequence.yaml' => 'Sequence::__create');
$errors = array();
foreach ($models as $yaml => $m) {
if ($objects = $this->getTemplate($yaml)->getData()) {
foreach ($objects as $o) {
if ($m && is_callable($m)) {
@call_user_func_array($m, array($o, &$errors));
}
// TODO: Add a warning to the success page for errors
// found here
$errors = array();
}
}
}
// Priorities
$priorities = $this->getTemplate('priority.yaml')->getData();
foreach ($priorities as $name => $info) {
$sql = 'INSERT INTO ' . PRIORITY_TABLE . ' SET priority=' . db_input($name) . ', priority_id=' . db_input($info['priority_id']) . ', priority_desc=' . db_input($info['priority_desc']) . ', priority_color=' . db_input($info['priority_color']) . ', priority_urgency=' . db_input($info['priority_urgency']);
db_query($sql);
}
// Configuration
require_once INCLUDE_DIR . 'class.config.php';
if (($tpl = $this->getTemplate('config.yaml')) && ($data = $tpl->getData())) {
foreach ($data as $section => $items) {
$_config = new Config($section);
foreach ($items as $key => $value) {
$_config->set($key, $value);
}
}
}
// Load core config
$_config = new OsticketConfig();
// Determine reasonable default max_file_size
$max_size = Format::filesize2bytes(strtoupper(ini_get('upload_max_filesize')));
$val = (int) $max_size / 2;
$po2 = 1;
while ($po2 < $val) {
$po2 <<= 1;
}
$_config->set('max_file_size', $po2);
// Pages and content
foreach (array('landing', 'thank-you', 'offline', 'registration-staff', 'pwreset-staff', 'banner-staff', 'registration-client', 'pwreset-client', 'banner-client', 'registration-confirm', 'registration-thanks', 'access-link') as $type) {
$tpl = $this->getTemplate("templates/page/{$type}.yaml");
if (!($page = $tpl->getData())) {
continue;
}
$sql = 'INSERT INTO ' . PAGE_TABLE . ' SET type=' . db_input($type) . ', name=' . db_input($page['name']) . ', body=' . db_input($page['body']) . ', lang=' . db_input($tpl->getLang()) . ', notes=' . db_input($page['notes']) . ', created=NOW(), updated=NOW(), isactive=1';
if (db_query($sql) && ($id = db_insert_id()) && in_array($type, array('landing', 'thank-you', 'offline'))) {
$_config->set("{$type}_page_id", $id);
}
}
// Default Language
$_config->set('system_language', $this->langs[0]);
// content_id defaults to the `id` field value
db_query('UPDATE ' . PAGE_TABLE . ' SET content_id=id');
// Canned response examples
if (($tpl = $this->getTemplate('templates/premade.yaml')) && ($canned = $tpl->getData())) {
foreach ($canned as $c) {
if (($id = Canned::create($c, $errors)) && isset($c['attachments'])) {
$premade = Canned::lookup($id);
foreach ($c['attachments'] as $a) {
$premade->attachments->save($a, false);
}
}
}
}
// Email templates
// TODO: Lookup tpl_id
if ($objects = $this->getTemplate('email_template_group.yaml')->getData()) {
foreach ($objects as $o) {
$o['lang_id'] = $this->langs[0];
$tpl = EmailTemplateGroup::create($o, $errors);
}
}
// This shouldn't be necessary
$tpl = EmailTemplateGroup::lookup(1);
foreach ($tpl::$all_names as $name => $info) {
if (($tp = $this->getTemplate("templates/email/{$name}.yaml")) && ($t = $tp->getData())) {
$t['tpl_id'] = $tpl->getId();
$t['code_name'] = $name;
$id = EmailTemplate::create($t, $errors);
if ($id && ($template = EmailTemplate::lookup($id)) && ($ids = Draft::getAttachmentIds($t['body']))) {
$template->attachments->upload($ids, true);
}
}
}
}
示例4: create
//.........这里部分代码省略.........
return false;
}
if (!$vars['body'] instanceof ThreadBody) {
if ($cfg->isHtmlThreadEnabled()) {
$vars['body'] = new HtmlThreadBody($vars['body']);
} else {
$vars['body'] = new TextThreadBody($vars['body']);
}
}
// Drop stripped images
if ($vars['attachments']) {
foreach ($vars['body']->getStrippedImages() as $cid) {
foreach ($vars['attachments'] as $i => $a) {
if (@$a['cid'] && $a['cid'] == $cid) {
// Inline referenced attachment was stripped
unset($vars['attachments'][$i]);
}
}
}
}
// Handle extracted embedded images (<img src="data:base64,..." />).
// The extraction has already been performed in the ThreadBody
// class. Here they should simply be added to the attachments list
if ($atts = $vars['body']->getEmbeddedHtmlImages()) {
if (!is_array($vars['attachments'])) {
$vars['attachments'] = array();
}
foreach ($atts as $info) {
$vars['attachments'][] = $info;
}
}
if (!($body = $vars['body']->getClean())) {
$body = '-';
}
//Special tag used to signify empty message as stored.
$poster = $vars['poster'];
if ($poster && is_object($poster)) {
$poster = (string) $poster;
}
$sql = ' INSERT INTO ' . TICKET_THREAD_TABLE . ' SET created=NOW() ' . ' ,thread_type=' . db_input($vars['type']) . ' ,ticket_id=' . db_input($vars['ticketId']) . ' ,title=' . db_input(Format::sanitize($vars['title'], true)) . ' ,format=' . db_input($vars['body']->getType()) . ' ,staff_id=' . db_input($vars['staffId']) . ' ,user_id=' . db_input($vars['userId']) . ' ,poster=' . db_input($poster) . ' ,source=' . db_input($vars['source']);
if (!isset($vars['attachments']) || !$vars['attachments']) {
// Otherwise, body will be configured in a block below (after
// inline attachments are saved and updated in the database)
$sql .= ' ,body=' . db_input($body);
}
if (isset($vars['pid'])) {
$sql .= ' ,pid=' . db_input($vars['pid']);
} elseif (isset($vars['reply_to']) && $vars['reply_to'] instanceof ThreadEntry) {
$sql .= ' ,pid=' . db_input($vars['reply_to']->getId());
}
if ($vars['ip_address']) {
$sql .= ' ,ip_address=' . db_input($vars['ip_address']);
}
//echo $sql;
if (!db_query($sql) || !($entry = self::lookup(db_insert_id(), $vars['ticketId']))) {
return false;
}
/************* ATTACHMENTS *****************/
//Upload/save attachments IF ANY
if ($vars['files']) {
//expects well formatted and VALIDATED files array.
$entry->uploadFiles($vars['files']);
}
//Canned attachments...
if ($vars['cannedattachments'] && is_array($vars['cannedattachments'])) {
$entry->saveAttachments($vars['cannedattachments']);
}
//Emailed or API attachments
if (isset($vars['attachments']) && $vars['attachments']) {
foreach ($vars['attachments'] as &$a) {
if (isset($a['cid']) && $a['cid'] && strpos($body, 'cid:' . $a['cid']) !== false) {
$a['inline'] = true;
}
}
unset($a);
$entry->importAttachments($vars['attachments']);
foreach ($vars['attachments'] as $a) {
// Change <img src="cid:"> inside the message to point to
// a unique hash-code for the attachment. Since the
// content-id will be discarded, only the unique hash-code
// will be available to retrieve the image later
if ($a['cid'] && $a['key']) {
$body = preg_replace('/src=("|\'|\\b)(?:cid:)?' . preg_quote($a['cid'], '/') . '\\1/i', 'src="cid:' . $a['key'] . '"', $body);
}
}
$sql = 'UPDATE ' . TICKET_THREAD_TABLE . ' SET body=' . db_input($body) . ' WHERE `id`=' . db_input($entry->getId());
if (!db_query($sql) || !db_affected_rows()) {
return false;
}
}
// Email message id (required for all thread posts)
if (!isset($vars['mid'])) {
$vars['mid'] = sprintf('<%s@%s>', Misc::randCode(24), substr(md5($cfg->getUrl()), -10));
}
$entry->saveEmailInfo($vars);
// Inline images (attached to the draft)
$entry->saveAttachments(Draft::getAttachmentIds($body));
Signal::send('model.created', $entry);
return $entry;
}
示例5: elseif
}
Draft::deleteForNamespace('page');
} elseif (!$errors['err']) {
$errors['err'] = sprintf(__('Unable to add %s. Correct error(s) below and try again.'), __('this site page'));
}
break;
case 'update':
if (!$page) {
$errors['err'] = sprintf(__('%s: Invalid or unknown'), __('site page'));
} elseif ($page->update($_POST, $errors)) {
$msg = sprintf(__('Successfully updated %s'), __('this site page'));
$_REQUEST['a'] = null;
//Go back to view
// Attach inline attachments from the editor
$page->attachments->deleteInlines();
$page->attachments->upload(Draft::getAttachmentIds($_POST['body']), true);
Draft::deleteForNamespace('page.' . $page->getId());
} elseif (!$errors['err']) {
$errors['err'] = sprintf(__('Unable to update %s. Correct error(s) below and try again.'), __('this site page'));
}
break;
case 'mass_process':
if (!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
$errors['err'] = sprintf(__('You must select at least %s.'), __('one site page'));
} elseif (array_intersect($_POST['ids'], $cfg->getDefaultPages()) && strcasecmp($_POST['a'], 'enable')) {
$errors['err'] = sprintf(__('One or more of the %s is in-use and CANNOT be disabled/deleted.'), _N('selected site page', 'selected site pages', 2));
} else {
$count = count($_POST['ids']);
switch (strtolower($_POST['a'])) {
case 'enable':
$sql = 'UPDATE ' . PAGE_TABLE . ' SET isactive=1 ' . ' WHERE id IN (' . implode(',', db_input($_POST['ids'])) . ')';
示例6: elseif
} elseif(!$errors['err'])
$errors['err'] = sprintf(__('Unable to add %s. Correct error(s) below and try again.'),
__('this site page'));
break;
case 'update':
if(!$page)
$errors['err'] = sprintf(__('%s: Invalid or unknown'),
__('site page'));
elseif($page->update($_POST, $errors)) {
$msg=sprintf(__('Successfully updated %s'),
__('this site page'));
$_REQUEST['a']=null; //Go back to view
// Attach inline attachments from the editor
$page->attachments->deleteInlines();
$page->attachments->upload(
Draft::getAttachmentIds($_POST['body']),
true);
Draft::deleteForNamespace('page.'.$page->getId());
} elseif(!$errors['err'])
$errors['err'] = sprintf(__('Unable to update %s. Correct error(s) below and try again.'),
__('this site page'));
break;
case 'mass_process':
if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
$errors['err'] = sprintf(__('You must select at least %s.'),
__('one site page'));
} elseif(array_intersect($_POST['ids'], $cfg->getDefaultPages()) && strcasecmp($_POST['a'], 'enable')) {
$errors['err'] = sprintf(__('One or more of the %s is in-use and CANNOT be disabled/deleted.'),
_N('selected site page', 'selected site pages', 2));
} else {
$count=count($_POST['ids']);