当前位置: 首页>>代码示例>>PHP>>正文


PHP Signal::send方法代码示例

本文整理汇总了PHP中Signal::send方法的典型用法代码示例。如果您正苦于以下问题:PHP Signal::send方法的具体用法?PHP Signal::send怎么用?PHP Signal::send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Signal的用法示例。


在下文中一共展示了Signal::send方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: decode

 function decode()
 {
     $params = array('crlf' => "\r\n", 'charset' => $this->charset, 'include_bodies' => $this->include_bodies, 'decode_headers' => $this->decode_headers, 'decode_bodies' => $this->decode_bodies);
     $info = array('raw' => &$this->mime_message);
     Signal::send('mail.received', $this, $info);
     $this->splitBodyHeader();
     $decoder = new Mail_mimeDecode($this->mime_message);
     $this->struct = $decoder->decode($params);
     if (PEAR::isError($this->struct)) {
         return false;
     }
     $info = array('raw_header' => &$this->header, 'headers' => &$this->struct->headers, 'body' => &$this->struct->parts, 'type' => $this->struct->ctype_primary . '/' . $this->struct->ctype_secondary, 'mail' => $this->struct, 'decoder' => $decoder);
     // Allow signal handlers to interact with the processing
     Signal::send('mail.decoded', $decoder, $info);
     // Handle wrapped emails when forwarded
     if ($this->struct && $this->struct->parts) {
         $outer = $this->struct;
         $ctype = $outer->ctype_primary . '/' . $outer->ctype_secondary;
         if (strcasecmp($ctype, 'message/rfc822') === 0) {
             // Capture Delivered-To header from the outer mail
             $dt = $this->struct->headers['delivered-to'];
             // Capture Message-Id from outer mail
             $mid = $this->struct->headers['message-id'];
             $this->struct = $outer->parts[0];
             // Add (clobber) delivered to header from the outer mail
             if ($dt) {
                 $this->struct->headers['delivered-to'] = $dt;
             }
             // Ensure the nested mail has a Message-Id
             if (!isset($this->struct->headers['message-id'])) {
                 $this->struct->headers['message-id'] = $mid;
             }
             // Use headers of the wrapped message
             $headers = array();
             foreach ($this->struct->headers as $h => $v) {
                 $headers[mb_convert_case($h, MB_CASE_TITLE)] = $v;
             }
             $this->header = Format::array_implode(": ", "\n", $headers);
         }
     }
     // Look for application/tnef attachment and process it
     if ($this->struct && $this->struct->parts) {
         foreach ($this->struct->parts as $i => $part) {
             if (!@$part->parts && $part->ctype_primary == 'application' && $part->ctype_secondary == 'ms-tnef') {
                 try {
                     $tnef = new TnefStreamParser($part->body);
                     $this->tnef = $tnef->getMessage();
                     // No longer considered an attachment
                     unset($this->struct->parts[$i]);
                 } catch (TnefException $ex) {
                     // TNEF will remain an attachment
                     $this->notes[] = 'TNEF parsing exception: ' . $ex->getMessage();
                 }
             }
         }
     }
     return count($this->struct->headers) > 1;
 }
开发者ID:gizur,项目名称:osticket,代码行数:58,代码来源:class.mailparse.php

示例2: getTtfFonts

 static function getTtfFonts()
 {
     if (!class_exists('Phar')) {
         return;
     }
     $fonts = $subs = array();
     foreach (self::availableLanguages() as $code => $info) {
         if (!$info['phar'] || !isset($info['fonts'])) {
             continue;
         }
         foreach ($info['fonts'] as $simple => $collection) {
             foreach ($collection as $type => $name) {
                 list($name, $url) = $name;
                 $ttffile = 'phar://' . $info['path'] . '/fonts/' . $name;
                 if (file_exists($ttffile)) {
                     $fonts[$simple][$type] = $ttffile;
                 }
             }
             if (@$collection[':sub']) {
                 $subs[] = $simple;
             }
         }
     }
     $rv = array($fonts, $subs);
     Signal::send('config.ttfonts', null, $rv);
     return $rv;
 }
开发者ID:KingsleyGU,项目名称:osticket,代码行数:27,代码来源:class.i18n.php

示例3: process

 static function process($username, $password = null, &$errors)
 {
     if (!$username) {
         return false;
     }
     $backends = static::getAllowedBackends($username);
     foreach (static::allRegistered() as $bk) {
         if ($backends && $bk->supportsAuthentication() && !in_array($bk::$id, $backends)) {
             // User cannot be authenticated against this backend
             continue;
         }
         // All backends are queried here, even if they don't support
         // authentication so that extensions like lockouts and audits
         // can be supported.
         $result = $bk->authenticate($username, $password);
         if ($result instanceof AuthenticatedUser && $bk->login($result, $bk)) {
             return $result;
         } elseif ($result instanceof AccessDenied) {
             break;
         }
     }
     if (!$result) {
         $result = new AccessDenied('Access denied');
     }
     if ($result && $result instanceof AccessDenied) {
         $errors['err'] = $result->reason;
     }
     $info = array('username' => $username, 'password' => $password);
     Signal::send('auth.login.failed', null, $info);
     self::authAudit($result, $info);
 }
开发者ID:iHunt101,项目名称:phlite,代码行数:31,代码来源:AuthenticationBackend.php

示例4: staffLoginPage

    http://www.osticket.com

    Released under the GNU General Public License WITHOUT ANY WARRANTY.
    See LICENSE.TXT for details.

    vim: expandtab sw=4 ts=4 sts=4:
**********************************************************************/
# Override staffLoginPage() defined in staff.inc.php to return an
# HTTP/Forbidden status rather than the actual login page.
# XXX: This should be moved to the AjaxController class
function staffLoginPage($msg = 'Unauthorized')
{
    Http::response(403, 'Must login: ' . Format::htmlchars($msg));
    exit;
}
define('AJAX_REQUEST', 1);
require 'staff.inc.php';
//Clean house...don't let the world see your crap.
ini_set('display_errors', '0');
//Disable error display
ini_set('display_startup_errors', '0');
//TODO: disable direct access via the browser? i,e All request must have REFER?
if (!defined('INCLUDE_DIR')) {
    Http::response(500, 'Server configuration error');
}
require_once INCLUDE_DIR . '/class.dispatcher.php';
require_once INCLUDE_DIR . '/class.ajax.php';
$dispatcher = patterns('', url('^/kb/', patterns('ajax.kbase.php:KbaseAjaxAPI', url_get('^canned-response/(?P<id>\\d+).(?P<format>json|txt)', 'cannedResp'), url_get('^faq/(?P<id>\\d+)', 'faq'))), url('^/content/', patterns('ajax.content.php:ContentAjaxAPI', url_get('^log/(?P<id>\\d+)', 'log'), url_get('^ticket_variables', 'ticket_variables'), url_get('^signature/(?P<type>\\w+)(?:/(?P<id>\\d+))?$', 'getSignature'), url_get('^(?P<id>\\d+)/(?:(?P<lang>\\w+)/)?manage$', 'manageContent'), url_get('^(?P<id>[\\w-]+)/(?:(?P<lang>\\w+)/)?manage$', 'manageNamedContent'), url_post('^(?P<id>\\d+)(?:/(?P<lang>\\w+))?$', 'updateContent'))), url('^/config/', patterns('ajax.config.php:ConfigAjaxAPI', url_get('^scp', 'scp'), url_get('^links', 'templateLinks'))), url('^/form/', patterns('ajax.forms.php:DynamicFormsAjaxAPI', url_get('^help-topic/(?P<id>\\d+)$', 'getFormsForHelpTopic'), url_get('^field-config/(?P<id>\\d+)$', 'getFieldConfiguration'), url_post('^field-config/(?P<id>\\d+)$', 'saveFieldConfiguration'), url_delete('^answer/(?P<entry>\\d+)/(?P<field>\\d+)$', 'deleteAnswer'))), url('^/list/', patterns('ajax.forms.php:DynamicFormsAjaxAPI', url_get('^item/(?P<id>\\d+)/properties$', 'getListItemProperties'), url_post('^item/(?P<id>\\d+)/properties$', 'saveListItemProperties'))), url('^/report/overview/', patterns('ajax.reports.php:OverviewReportAjaxAPI', url_get('^graph$', 'getPlotData'), url_get('^table/groups$', 'enumTabularGroups'), url_get('^table/export$', 'downloadTabularData'), url_get('^table$', 'getTabularData'))), url('^/users', patterns('ajax.users.php:UsersAjaxAPI', url_get('^$', 'search'), url_get('^/local$', 'search', array('local')), url_get('^/remote$', 'search', array('remote')), url_get('^/(?P<id>\\d+)$', 'getUser'), url_post('^/(?P<id>\\d+)$', 'updateUser'), url_get('^/(?P<id>\\d+)/preview$', 'preview'), url_get('^/(?P<id>\\d+)/edit$', 'editUser'), url('^/lookup$', 'getUser'), url_get('^/lookup/form$', 'lookup'), url_post('^/lookup/form$', 'addUser'), url_get('^/add$', 'addUser'), url('^/import$', 'importUsers'), url_get('^/select$', 'selectUser'), url_get('^/select/(?P<id>\\d+)$', 'selectUser'), url_get('^/select/auth:(?P<bk>\\w+):(?P<id>.+)$', 'addRemoteUser'), url_get('^/(?P<id>\\d+)/register$', 'register'), url_post('^/(?P<id>\\d+)/register$', 'register'), url_get('^/(?P<id>\\d+)/delete$', 'delete'), url_post('^/(?P<id>\\d+)/delete$', 'delete'), url_get('^/(?P<id>\\d+)/manage(?:/(?P<target>\\w+))?$', 'manage'), url_post('^/(?P<id>\\d+)/manage(?:/(?P<target>\\w+))?$', 'manage'), url_get('^/(?P<id>\\d+)/org(?:/(?P<orgid>\\d+))?$', 'updateOrg'), url_post('^/(?P<id>\\d+)/org$', 'updateOrg'), url_get('^/staff$', 'searchStaff'), url_post('^/(?P<id>\\d+)/note$', 'createNote'), url_get('^/(?P<id>\\d+)/forms/manage$', 'manageForms'), url_post('^/(?P<id>\\d+)/forms/manage$', 'updateForms'))), url('^/orgs', patterns('ajax.orgs.php:OrgsAjaxAPI', url_get('^$', 'search'), url_get('^/search$', 'search'), url_get('^/(?P<id>\\d+)$', 'getOrg'), url_post('^/(?P<id>\\d+)$', 'updateOrg'), url_post('^/(?P<id>\\d+)/profile$', 'updateOrg', array(true)), url_get('^/(?P<id>\\d+)/edit$', 'editOrg'), url_get('^/lookup/form$', 'lookup'), url_post('^/lookup/form$', 'addOrg'), url_get('^/add$', 'addOrg'), url_post('^/add$', 'addOrg'), url_get('^/select$', 'selectOrg'), url_get('^/select/(?P<id>\\d+)$', 'selectOrg'), url_get('^/(?P<id>\\d+)/add-user(?:/(?P<userid>\\d+))?$', 'addUser'), url_get('^/(?P<id>\\d+)/add-user(?:/auth:(?P<userid>.+))?$', 'addUser', array(true)), url_post('^/(?P<id>\\d+)/add-user$', 'addUser'), url('^/(?P<id>\\d+)/import-users$', 'importUsers'), url_get('^/(?P<id>\\d+)/delete$', 'delete'), url_delete('^/(?P<id>\\d+)/delete$', 'delete'), url_post('^/(?P<id>\\d+)/note$', 'createNote'), url_get('^/(?P<id>\\d+)/forms/manage$', 'manageForms'), url_post('^/(?P<id>\\d+)/forms/manage$', 'updateForms'))), url('^/tickets/', patterns('ajax.tickets.php:TicketsAjaxAPI', url_get('^(?P<tid>\\d+)/change-user$', 'changeUserForm'), url_post('^(?P<tid>\\d+)/change-user$', 'changeUser'), url_get('^(?P<tid>\\d+)/user$', 'viewUser'), url_post('^(?P<tid>\\d+)/user$', 'updateUser'), url_get('^(?P<tid>\\d+)/preview', 'previewTicket'), url_post('^(?P<tid>\\d+)/lock$', 'acquireLock'), url_post('^(?P<tid>\\d+)/lock/(?P<id>\\d+)/renew', 'renewLock'), url_post('^(?P<tid>\\d+)/lock/(?P<id>\\d+)/release', 'releaseLock'), url_get('^(?P<tid>\\d+)/collaborators/preview$', 'previewCollaborators'), url_get('^(?P<tid>\\d+)/collaborators$', 'showCollaborators'), url_post('^(?P<tid>\\d+)/collaborators$', 'updateCollaborators'), url_get('^(?P<tid>\\d+)/add-collaborator/(?P<uid>\\d+)$', 'addCollaborator'), url_get('^(?P<tid>\\d+)/add-collaborator/auth:(?P<bk>\\w+):(?P<id>.+)$', 'addRemoteCollaborator'), url('^(?P<tid>\\d+)/add-collaborator$', 'addCollaborator'), url_get('^lookup', 'lookup'), url_get('^search', 'search'), url_get('^(?P<tid>\\d+)/forms/manage$', 'manageForms'), url_post('^(?P<tid>\\d+)/forms/manage$', 'updateForms'), url_get('^(?P<tid>\\d+)/canned-resp/(?P<cid>\\w+).(?P<format>json|txt)', 'cannedResponse'))), url('^/collaborators/', patterns('ajax.tickets.php:TicketsAjaxAPI', url_get('^(?P<cid>\\d+)/view$', 'viewCollaborator'), url_post('^(?P<cid>\\d+)$', 'updateCollaborator'))), url('^/draft/', patterns('ajax.draft.php:DraftAjaxAPI', url_post('^(?P<id>\\d+)$', 'updateDraft'), url_delete('^(?P<id>\\d+)$', 'deleteDraft'), url_post('^(?P<id>\\d+)/attach$', 'uploadInlineImage'), url_get('^(?P<namespace>[\\w.]+)$', 'getDraft'), url_post('^(?P<namespace>[\\w.]+)$', 'createDraft'), url_get('^images/browse$', 'getFileList'))), url('^/note/', patterns('ajax.note.php:NoteAjaxAPI', url_get('^(?P<id>\\d+)$', 'getNote'), url_post('^(?P<id>\\d+)$', 'updateNote'), url_delete('^(?P<id>\\d+)$', 'deleteNote'), url_post('^attach/(?P<ext_id>\\w\\d+)$', 'createNote'))), url_post('^/upgrader', array('ajax.upgrader.php:UpgraderAjaxAPI', 'upgrade')), url('^/help/', patterns('ajax.tips.php:HelpTipAjaxAPI', url_get('^tips/(?P<namespace>[\\w_.]+)$', 'getTipsJson'), url_get('^(?P<lang>[\\w_]+)?/tips/(?P<namespace>[\\w_.]+)$', 'getTipsJsonForLang'))));
Signal::send('ajax.scp', $dispatcher);
# Call the respective function
print $dispatcher->resolve($ost->get_path_info());
开发者ID:ed00m,项目名称:osTicket-1.8,代码行数:31,代码来源:ajax.php

示例5: createTicket


//.........这里部分代码省略.........
             }
         }
     }
     $vars = $mailinfo;
     $vars['name'] = $mailinfo['name'];
     $vars['subject'] = $mailinfo['subject'] ?: '[No Subject]';
     $vars['emailId'] = $mailinfo['emailId'] ?: $this->getEmailId();
     $vars['to-email-id'] = $mailinfo['emailId'] ?: 0;
     $vars['flags'] = new ArrayObject();
     if ($this->isBounceNotice($mid)) {
         // Fetch the original References and assign to 'references'
         if ($headers = $this->getOriginalMessageHeaders($mid)) {
             $vars['references'] = $headers['references'];
             $vars['in-reply-to'] = @$headers['in-reply-to'] ?: null;
         }
         // Fetch deliver status report
         $vars['message'] = $this->getDeliveryStatusMessage($mid) ?: $this->getBody($mid);
         $vars['thread-type'] = 'N';
         $vars['flags']['bounce'] = true;
     } else {
         $vars['message'] = $this->getBody($mid);
         $vars['flags']['bounce'] = TicketFilter::isBounce($info);
     }
     //Missing FROM name  - use email address.
     if (!$vars['name']) {
         list($vars['name']) = explode('@', $vars['email']);
     }
     if ($ost->getConfig()->useEmailPriority()) {
         $vars['priorityId'] = $this->getPriority($mid);
     }
     $ticket = null;
     $newticket = true;
     $errors = array();
     $seen = false;
     // Use the settings on the thread entry on the ticket details
     // form to validate the attachments in the email
     $tform = TicketForm::objects()->one()->getForm();
     $messageField = $tform->getField('message');
     $fileField = $messageField->getWidget()->getAttachments();
     // Fetch attachments if any.
     if ($messageField->isAttachmentsEnabled()) {
         // Include TNEF attachments in the attachments list
         if ($this->tnef) {
             foreach ($this->tnef->attachments as $at) {
                 $attachments[] = array('cid' => @$at->AttachContentId ?: false, 'data' => $at, 'size' => @$at->DataSize ?: null, 'type' => @$at->AttachMimeTag ?: false, 'name' => $at->getName());
             }
         }
         $vars['attachments'] = array();
         foreach ($attachments as $a) {
             $file = array('name' => $a['name'], 'type' => $a['type']);
             if (@$a['data'] instanceof TnefAttachment) {
                 $file['data'] = $a['data']->getData();
             } else {
                 // only fetch the body if necessary
                 $self = $this;
                 $file['data'] = function () use($self, $mid, $a) {
                     return $self->decode(imap_fetchbody($self->mbox, $mid, $a['index']), $a['encoding']);
                 };
             }
             // Include the Content-Id if specified (for inline images)
             $file['cid'] = isset($a['cid']) ? $a['cid'] : false;
             // Validate and save immediately
             try {
                 $file['id'] = $fileField->uploadAttachment($file);
             } catch (FileUploadError $ex) {
                 $file['error'] = $file['name'] . ': ' . $ex->getMessage();
             }
             $vars['attachments'][] = $file;
         }
     }
     // Allow signal handlers to interact with the message decoding
     Signal::send('mail.processed', $this, $vars);
     $seen = false;
     if (($thread = ThreadEntry::lookupByEmailHeaders($vars, $seen)) && ($t = $thread->getTicket()) && ($vars['staffId'] || !$t->isClosed() || $t->isReopenable()) && ($message = $thread->postEmail($vars))) {
         if (!$message instanceof ThreadEntry) {
             // Email has been processed previously
             return $message;
         }
         $ticket = $message->getTicket();
     } elseif ($seen) {
         // Already processed, but for some reason (like rejection), no
         // thread item was created. Ignore the email
         return true;
     } elseif ($ticket = Ticket::create($vars, $errors, 'Email')) {
         $message = $ticket->getLastMessage();
     } else {
         //Report success if the email was absolutely rejected.
         if (isset($errors['errno']) && $errors['errno'] == 403) {
             // Never process this email again!
             ThreadEntry::logEmailHeaders(0, $vars['mid']);
             return true;
         }
         // Log an error to the system logs
         $mailbox = Email::lookup($vars['emailId']);
         $ost->logError(_S('Mail Processing Exception'), sprintf(_S("Mailbox: %s | Error(s): %s"), $mailbox->getEmail(), print_r($errors, true)), false);
         // Indicate failure of mail processing
         return null;
     }
     return $ticket;
 }
开发者ID:KM-MFG,项目名称:osTicket-1.8,代码行数:101,代码来源:class.mailfetch.php

示例6: ob_end_clean

if ($sec < 180 || !$ost || $ost->isUpgradePending())
    ob_end_clean();

require_once(INCLUDE_DIR.'class.cron.php');

// Clear staff obj to avoid false credit internal notes & auto-assignment
$thisstaff = null;

// Release the session to prevent locking a future request while this is
// running
$_SESSION['lastcroncall'] = time();
session_write_close();

// Age tickets: We're going to age tickets regardless of cron settings.
Cron::TicketMonitor();

// Run file purging about every 20 cron runs (1h40 on a five minute cron)
if (mt_rand(1, 20) == 4)
    Cron::CleanOrphanedFiles();

if($cfg && $cfg->isAutoCronEnabled()) { //ONLY fetch tickets if autocron is enabled!
    Cron::MailFetcher();  //Fetch mail.
    $ost->logDebug(_S('Auto Cron'), sprintf(_S('Mail fetcher cron call [%s]'), $caller));
}

$data = array('autocron'=>true);
Signal::send('cron', $data);

ob_end_clean();
?>
开发者ID:KingsleyGU,项目名称:osticket,代码行数:30,代码来源:autocron.php

示例7: save

 function save($id, $vars, &$errors, $validation = false)
 {
     //Cleanup.
     $vars['question'] = Format::striptags(trim($vars['question']));
     //validate
     if ($id && $id != $vars['id']) {
         $errors['err'] = __('Internal error. Try again');
     }
     if (!$vars['question']) {
         $errors['question'] = __('Question required');
     } elseif (($qid = self::findIdByQuestion($vars['question'])) && $qid != $id) {
         $errors['question'] = __('Question already exists');
     }
     if (!$vars['category_id'] || !($category = Category::lookup($vars['category_id']))) {
         $errors['category_id'] = __('Category is required');
     }
     if (!$vars['answer']) {
         $errors['answer'] = __('FAQ answer is required');
     }
     if ($errors || $validation) {
         return !$errors;
     }
     //save
     $sql = ' updated=NOW() ' . ', question=' . db_input($vars['question']) . ', answer=' . db_input(Format::sanitize($vars['answer'], false)) . ', category_id=' . db_input($vars['category_id']) . ', ispublished=' . db_input(isset($vars['ispublished']) ? $vars['ispublished'] : 0) . ', notes=' . db_input(Format::sanitize($vars['notes']));
     if ($id) {
         $sql = 'UPDATE ' . FAQ_TABLE . ' SET ' . $sql . ' WHERE faq_id=' . db_input($id);
         if (db_query($sql)) {
             return true;
         }
         $errors['err'] = sprintf(__('Unable to update %s.'), __('this FAQ article'));
     } else {
         $sql = 'INSERT INTO ' . FAQ_TABLE . ' SET ' . $sql . ',created=NOW()';
         if (db_query($sql) && ($id = db_insert_id())) {
             Signal::send('model.created', FAQ::lookup($id));
             return $id;
         }
         $errors['err'] = sprintf(__('Unable to create %s.'), __('this FAQ article')) . ' ' . __('Internal error occurred');
     }
     return false;
 }
开发者ID:CarlosAvilesMx,项目名称:CarlosAviles.Mx,代码行数:40,代码来源:class.faq.php

示例8: create

 static function create($vars, &$errors, $origin, $autorespond = true, $alertstaff = true)
 {
     global $ost, $cfg, $thisclient, $_FILES;
     // Don't enforce form validation for email
     $field_filter = function ($type) use($origin) {
         return function ($f) use($origin, $type) {
             // Ultimately, only offer validation errors for web for
             // non-internal fields. For email, no validation can be
             // performed. For other origins, validate as usual
             switch (strtolower($origin)) {
                 case 'email':
                     return false;
                 case 'staff':
                     // Required 'Contact Information' fields aren't required
                     // when staff open tickets
                     return $type != 'user' || in_array($f->get('name'), array('name', 'email'));
                 case 'web':
                     return !$f->get('private');
                 default:
                     return true;
             }
         };
     };
     $reject_ticket = function ($message) use(&$errors) {
         global $ost;
         $errors = array('errno' => 403, 'err' => __('This help desk is for use by authorized users only'));
         $ost->logWarning(_S('Ticket Denied'), $message, false);
         return 0;
     };
     Signal::send('ticket.create.before', null, $vars);
     // Create and verify the dynamic form entry for the new ticket
     $form = TicketForm::getNewInstance();
     $form->setSource($vars);
     // If submitting via email or api, ensure we have a subject and such
     if (!in_array(strtolower($origin), array('web', 'staff'))) {
         foreach ($form->getFields() as $field) {
             $fname = $field->get('name');
             if ($fname && isset($vars[$fname]) && !$field->value) {
                 $field->value = $field->parse($vars[$fname]);
             }
         }
     }
     if (!$form->isValid($field_filter('ticket'))) {
         $errors += $form->errors();
     }
     /*INICIO
       Creado por Anthony Parisi
       2016-02-01
       Con las siguientes lineas de código, se crea el ticket mediante la API.*/
     if (!in_array(strtolower($origin), array('web', 'staff'))) {
         $errors = array();
     }
     /* FIN */
     if ($vars['uid']) {
         $user = User::lookup($vars['uid']);
     }
     $id = 0;
     $fields = array();
     $fields['message'] = array('type' => '*', 'required' => 1, 'error' => __('Message content is required'));
     switch (strtolower($origin)) {
         case 'web':
             $fields['topicId'] = array('type' => 'int', 'required' => 1, 'error' => __('Select a help topic'));
             break;
         case 'staff':
             $fields['deptId'] = array('type' => 'int', 'required' => 0, 'error' => __('Department selection is required'));
             $fields['topicId'] = array('type' => 'int', 'required' => 1, 'error' => __('Help topic selection is required'));
             $fields['duedate'] = array('type' => 'date', 'required' => 0, 'error' => __('Invalid date format - must be MM/DD/YY'));
         case 'api':
             $fields['source'] = array('type' => 'string', 'required' => 1, 'error' => __('Indicate ticket source'));
             break;
         case 'email':
             $fields['emailId'] = array('type' => 'int', 'required' => 1, 'error' => __('Unknown system email'));
             break;
         default:
             # TODO: Return error message
             $errors['err'] = $errors['origin'] = __('Invalid ticket origin given');
     }
     if (!Validator::process($fields, $vars, $errors) && !$errors['err']) {
         $errors['err'] = __('Missing or invalid data - check the errors and try again');
     }
     //Make sure the due date is valid
     if ($vars['duedate']) {
         if (!$vars['time'] || strpos($vars['time'], ':') === false) {
             $errors['time'] = __('Select a time from the list');
         } elseif (strtotime($vars['duedate'] . ' ' . $vars['time']) === false) {
             $errors['duedate'] = __('Invalid due date');
         } elseif (strtotime($vars['duedate'] . ' ' . $vars['time']) <= time()) {
             $errors['duedate'] = __('Due date must be in the future');
         }
     }
     if (!$errors) {
         # Perform ticket filter actions on the new ticket arguments
         $__form = null;
         if ($vars['topicId']) {
             if (($__topic = Topic::lookup($vars['topicId'])) && ($__form = $__topic->getForm())) {
                 $__form = $__form->instanciate();
                 $__form->setSource($vars);
             }
         }
         try {
//.........这里部分代码省略.........
开发者ID:jmangarret,项目名称:ostickets,代码行数:101,代码来源:class.ticket.php

示例9: run

 function run()
 {
     //called by outside cron NOT autocron
     global $ost;
     if (!$ost || $ost->isUpgradePending()) {
         return;
     }
     self::MailFetcher();
     self::TicketMonitor();
     self::PurgeLogs();
     self::CleanOrphanedFiles();
     self::PurgeDrafts();
     self::MaybeOptimizeTables();
     Signal::send('cron', null);
 }
开发者ID:ed00m,项目名称:osTicket-1.8,代码行数:15,代码来源:class.cron.php

示例10: sendUnlockEmail

 protected function sendUnlockEmail($template)
 {
     global $ost, $cfg;
     $token = Misc::randCode(48);
     // 290-bits
     $email = $cfg->getDefaultEmail();
     $content = Page::lookup(Page::getIdByType($template));
     if (!$email || !$content) {
         return new Error(sprintf(_S('%s: Unable to retrieve template'), $template));
     }
     $vars = array('url' => $ost->getConfig()->getBaseUrl(), 'token' => $token, 'user' => $this->getUser(), 'recipient' => $this->getUser(), 'link' => sprintf("%s/pwreset.php?token=%s", $ost->getConfig()->getBaseUrl(), $token));
     $vars['reset_link'] =& $vars['link'];
     $info = array('email' => $email, 'vars' => &$vars, 'log' => true);
     Signal::send('auth.pwreset.email', $this->getUser(), $info);
     $msg = $ost->replaceTemplateVariables(array('subj' => $content->getName(), 'body' => $content->getBody()), $vars);
     $_config = new Config('pwreset');
     $_config->set($vars['token'], $this->getUser()->getId());
     $email->send($this->getUser()->getEmail(), Format::striptags($msg['subj']), $msg['body']);
     return true;
 }
开发者ID:dmiguel92,项目名称:osTicket-1.8,代码行数:20,代码来源:class.user.php

示例11: 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;
 }
开发者ID:CarlosAvilesMx,项目名称:CarlosAviles.Mx,代码行数:101,代码来源:class.thread.php

示例12: Config

            break;
        case 'newpasswd':
            // TODO: Compare passwords
            $tpl = 'pwreset.login.php';
            $_config = new Config('pwreset');
            if (($staff = new StaffSession($_POST['userid'])) && !$staff->getId()) {
                $msg = 'Invalid user-id given';
            } elseif (!($id = $_config->get($_POST['token'])) || $id != $staff->getId()) {
                $msg = 'Invalid reset token';
            } elseif (!($ts = $_config->lastModified($_POST['token'])) && $ost->getConfig()->getPwResetWindow() < time() - strtotime($ts)) {
                $msg = 'Invalid reset token';
            } elseif (!$staff->forcePasswdRest()) {
                $msg = 'Unable to reset password';
            } else {
                $info = array('page' => 'index.php');
                Signal::send('auth.pwreset.login', $staff, $info);
                Staff::_do_login($staff, $_POST['userid']);
                $_SESSION['_staff']['reset-token'] = $_POST['token'];
                header('Location: ' . $info['page']);
                exit;
            }
            break;
    }
} elseif ($_GET['token']) {
    $msg = 'Re-enter your username or email';
    $_config = new Config('pwreset');
    if (($id = $_config->get($_GET['token'])) && ($staff = Staff::lookup($id))) {
        $tpl = 'pwreset.login.php';
    } else {
        header('Location: index.php');
    }
开发者ID:pkdevboxy,项目名称:osTicket-1.7,代码行数:31,代码来源:pwreset.php

示例13: Copyright

<?php

/*********************************************************************
    http.php

    HTTP controller for the osTicket API

    Jared Hancock
    Copyright (c)  2006-2013 osTicket
    http://www.osticket.com

    Released under the GNU General Public License WITHOUT ANY WARRANTY.
    See LICENSE.TXT for details.

    vim: expandtab sw=4 ts=4 sts=4:
**********************************************************************/
// Use sessions — it's important for SSO authentication, which uses
// /api/auth/ext
define('DISABLE_SESSION', false);
require 'api.inc.php';
# Include the main api urls
require_once INCLUDE_DIR . "class.dispatcher.php";
$dispatcher = patterns('', url_post("^/tickets\\.(?P<format>xml|json|email)\$", array('api.tickets.php:TicketApiController', 'create')), url('^/tasks/', patterns('', url_post("^cron\$", array('api.cron.php:CronApiController', 'execute')))));
Signal::send('api', $dispatcher);
# Call the respective function
print $dispatcher->resolve($ost->get_path_info());
开发者ID:ayurmedia,项目名称:osTicket-1.8,代码行数:26,代码来源:http.php

示例14: onUnhandledException

 function onUnhandledException($ex)
 {
     $info = array('exception' => $ex);
     Signal::send('php.exception', $this, $info);
 }
开发者ID:iHunt101,项目名称:phlite,代码行数:5,代码来源:ErrorSignal.php

示例15: dump

 function dump($error_stream)
 {
     // Allow plugins to change the tables exported
     Signal::send('export.tables', $this, $this->tables);
     $this->dump_header();
     foreach ($this->tables as $t) {
         if ($error_stream) {
             $error_stream->write("{$t}\n");
         }
         // Inspect schema
         $table = array();
         $res = db_query("select column_name from information_schema.columns\n                where table_schema=DATABASE() and table_name='{$t}'");
         while (list($field) = db_fetch_row($res)) {
             $table[] = $field;
         }
         if (!$table) {
             if ($error_stream) {
                 $error_stream->write($t . ': Cannot export table with no fields' . "\n");
             }
             die;
         }
         $this->write_block(array('table', substr($t, strlen(TABLE_PREFIX)), $table));
         db_query("select * from {$t}");
         // Dump row data
         while ($row = db_fetch_row($res)) {
             $this->write_block($row);
         }
         $this->write_block(array('end-table'));
     }
 }
开发者ID:ed00m,项目名称:osTicket-1.8,代码行数:30,代码来源:class.export.php


注:本文中的Signal::send方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。