Пример #1
0
 function onSubmit($vals)
 {
     loader_import('cms.Workspace.Message');
     $msg = new WorkspaceMessage();
     $msg->renameCategory($vals['name'], $vals['category']);
     header('Location: ' . site_prefix() . '/index/cms-messages-action');
     exit;
 }
Пример #2
0
 function onSubmit($vals)
 {
     loader_import('cms.Workspace.Message');
     $msg = new WorkspaceMessage();
     if (!$vals['response_id']) {
         $vals['response_id'] = '0';
     }
     $res = $msg->send($vals['subject'], $vals['body'], explode(',', $vals['recipients']), array(), $vals['response_id'], $vals['priority'], session_username());
     if (!$res) {
         echo '<p>Error: ' . $msg->error . '</p>';
     }
     session_set('sitellite_alert', intl_get('Your message has been sent.'));
     header('Location: ' . site_prefix() . '/index/cms-cpanel-action?_msg=sent');
     exit;
 }
Пример #3
0
 *
 * Transition is one of:
 * - add
 * - edit
 *
 * Action is one of:
 * - null: Document was added
 * - modify: Ordinary modifications (source and store)
 * - replace: A change was approved, overwriting the live version
 * - republish: A change was made as a draft, requiring approval
 * - update: Update to a draft that was republished
 */
loader_import('cms.Workspace.Message');
loader_import('cms.Versioning.Rex');
loader_import('multilingual.Translation');
$msg = new WorkspaceMessage();
$rex = new Rex($parameters['collection']);
$tr = new Translation($parameters['collection']);
if ($parameters['transition'] == 'add') {
    // 1. find the associated translator(s) and email them
    $users = db_shift_array('select username from sitellite_user where team = ? and role = "translator"', $parameters['data']['sitellite_team']);
    $url = sprintf('%s/index/multilingual-translate-form?_collection=%s&_key=%s', site_prefix(), $parameters['collection'], $parameters['key']);
    $msg->send(intl_get('New Translation Notice'), template_simple('services_translation_new.spt', array('url' => $url, 'changelog' => $parameters['changelog'], 'collection' => $rex->info['Collection']['display'], 'key' => $parameters['key'])), $users);
} else {
    // 1. expire the translations
    $tr->expire($parameters['key']);
    // 2. find the associated translator(s) and email them
    $users = db_shift_array('select username from sitellite_user where team = ? and role = "translator"', $parameters['data']['sitellite_team']);
    $url = sprintf('%s/index/multilingual-translate-form?_collection=%s&_key=%s', site_prefix(), $parameters['collection'], $parameters['key']);
    $msg->send(intl_get('Translation Update Notice'), template_simple('services_translation_update.spt', array('url' => $url, 'changelog' => $parameters['changelog'], 'collection' => $rex->info['Collection']['display'], 'key' => $parameters['key'])), $users);
}
Пример #4
0
/**
 * Replacement for mail() in Sitellite, using Sitellite's internal messaging
 * system instead.  The first parameter is a username instead of an email address,
 * and the fourth is a sender's username instead of a From header.
 *
 * @access public
 * @param string
 * @param string
 * @param string
 * @param string
 * @return boolean
 */
function sitellite_mail($to_user, $subject, $body, $from_user = '')
{
    loader_import('cms.Workspace.Message');
    $msg = new WorkspaceMessage();
    return $msg->send($subject, $body, $to_user, array(), 0, 'normal', $from_user);
}
Пример #5
0
<?php

loader_import('cms.Workspace.Message');
$msg = new WorkspaceMessage();
$messages = $msg->getNew();
if (!is_array($messages)) {
    //echo '<p>' . intl_get ('No new messages.') . '</p>';
    //return;
}
function msg_date_format($date)
{
    loader_import('saf.Date');
    return Date::timestamp($date, array('today' => '\\T\\o\\d\\a\\y - g:i A', 'yesterday' => '\\Y\\e\\s\\t\\e\\r\\d\\a\\y - g:i A', 'tomorrow' => '\\T\\o\\m\\o\\r\\r\\o\\w - g:i A', 'this week' => 'l, F j, Y - g:i A', 'other' => 'F j, Y - g:i A'));
}
function msg_get_name($user)
{
    $info = session_get_user($user);
    if (!$info) {
        return $user;
    }
    if (!empty($info->lastname)) {
        return $info->lastname . ', ' . $info->firstname;
    }
    return $user;
}
echo template_simple('messages/inbox.spt', array('messages' => $messages));
Пример #6
0
<?php

$data = array();
loader_import('cms.Workspace.Message');
$msg = new WorkspaceMessage();
$data['folders'] = $msg->categories();
$inbox = new StdClass();
$inbox->name = intl_get('Inbox');
$inbox->count = db_shift('select count(*) from sitellite_msg_recipient where type = "user" and user = ? and category = ""', session_username());
$outbox = new StdClass();
$outbox->name = intl_get('Sent');
$outbox->count = db_shift('select count(*) from sitellite_message where from_user = ?', session_username());
$trash = new StdClass();
$trash->name = intl_get('Trash');
$trash->count = db_shift('select count(*) from sitellite_msg_recipient where type = "user" and status = "trash" and user = ?', session_username());
array_unshift($data['folders'], $trash);
array_unshift($data['folders'], $outbox);
array_unshift($data['folders'], $inbox);
echo template_simple(CMS_JS_ALERT_MESSAGE, $GLOBALS['cgi']);
echo template_simple('messages/index.spt', $data);
Пример #7
0
    header('HTTP/1.1 404 Not Found');
    echo "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n" . "<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n" . "The requested URL " . $PHP_SELF . " was not found on this server.<p>\n<hr>\n" . $_SERVER['SERVER_SIGNATURE'] . "</body></html>";
    exit;
}
// END CLI KEEPOUT CHECKING
// mailcheck scheduler block
// Checks for new incoming mail.
global $conf;
if (empty($conf['Messaging']['email_server'])) {
    return;
}
loader_import('saf.Mail.Pop3');
loader_import('pear.Mail.mimeDecode');
loader_import('cms.Workspace.Message');
//loader_import ('cms.Workspace.Task');
$wmsg = new WorkspaceMessage();
//$wtsk = new WorkspaceTask ();
$pop3 = new Pop3($conf['Messaging']['email_server'], $conf['Messaging']['email_port']);
if (!$pop3->connect()) {
    echo $pop3->error . "\n";
    return;
}
if (!$pop3->authenticate($conf['Messaging']['email_username'], $conf['Messaging']['email_password'])) {
    echo $pop3->error . "\n";
    return;
}
$messages = $pop3->listMessages();
foreach ($messages as $number => $message) {
    set_time_limit(30);
    $messages[$number]['message'] = $pop3->getMessage($number);
    if ($messages[$number]['message'] === false) {
Пример #8
0
<?php

loader_import('cms.Workspace.Message');
$msg = new WorkspaceMessage();
if ($parameters['new_folder'] == 'Inbox') {
    $parameters['new_folder'] = '';
}
foreach ($parameters['items'] as $item) {
    $msg->setCategory($item, $parameters['new_folder']);
}
header('Location: ' . site_prefix() . '/index/cms-messages-category-action?category=' . $parameters['category']);
exit;
Пример #9
0
<?php

global $cgi;
loader_import('cms.Workspace.Message');
$msg = new WorkspaceMessage();
if ($cgi->item) {
    $cgi->id = $cgi->item;
}
if ($cgi->category == 'Sent') {
    $res = $msg->getSent($cgi->id);
} else {
    $res = $msg->get($cgi->id);
}
if (!$res) {
    page_title(intl_get('Reading Message'));
    echo '<p>Error: ' . $msg->error . '</p>';
    return;
}
if ($cgi->category == 'Sent') {
    $res->category = 'Sent';
} elseif ($cgi->category == 'Trash') {
    $res->category = 'Trash';
} elseif ($res->category == '') {
    $res->category = 'Inbox';
}
page_title(intl_get('Reading Message') . ': ' . $res->subject);
$res->response_subject = Workspace::createResponseSubject($res->subject);
$list = $msg->getRecipients($cgi->id);
if (!$list) {
    $user_list = array();
    $recipients = array(session_username());
Пример #10
0
 * made.  The only way you can undo changes in a service is by
 * using the cms.Versioning.Rex API if the collection in question
 * supports versioning (not all do).  Also, you can, if necessary,
 * create further modifications to the document, also via the
 * Rex API.
 *
 * Transition is one of:
 * - add
 * - edit
 *
 * Action is one of:
 * - null: Document was added
 * - modify: Ordinary modifications (source and store)
 * - replace: A change was approved, overwriting the live version
 * - republish: A change was made as a draft, requiring approval
 * - update: Update to a draft that was republished
 */
loader_import('cms.Workspace.Message');
loader_import('cms.Versioning.Rex');
$msg = new WorkspaceMessage();
$rex = new Rex($parameters['collection']);
if ($parameters['data']['sitellite_status'] == 'pending') {
    // find the associated editor(s) and email them
    $users = db_shift_array('select username from sitellite_user where team = ? and role = "editor"', $parameters['data']['sitellite_team']);
    $url = sprintf('%s/index/cms-edit-form?_collection=%s&_key=%s', site_prefix(), $parameters['collection'], $parameters['key']);
    $msg->send(intl_get('Pending Document Notice'), template_simple('services_notice_pending.spt', array('url' => $url, 'changelog' => $parameters['changelog'], 'collection' => $rex->info['Collection']['display'], 'key' => $parameters['key'])), $users);
} elseif ($parameters['data']['sitellite_status'] == 'rejected') {
    // find the associated writer and email them
    $url = sprintf('%s/index/cms-edit-form?_collection=%s&_key=%s', site_prefix(), $parameters['collection'], $parameters['key']);
    $msg->send(intl_get('Rejected Document Notice'), template_simple('services_notice_rejected.spt', array('url' => $url, 'changelog' => $parameters['changelog'], 'collection' => $rex->info['Collection']['display'], 'key' => $parameters['key'])), $parameters['data']['sitellite_owner']);
}
Пример #11
0
<?php

loader_import('cms.Workspace.Message');
$msg = new WorkspaceMessage();
if (!$msg->deleteCategory($parameters['category'])) {
    die($msg->error);
}
header('Location: ' . site_prefix() . '/index/cms-messages-action');
exit;
Пример #12
0
<?php

global $cgi;
loader_import('cms.Workspace.Message');
$msg = new WorkspaceMessage();
$res = $msg->get($cgi->message_id);
if (!$res) {
    echo '<script language="javascript" type="text/javascript"> window.close (); </script>';
    exit;
}
$attachment = false;
foreach ($res->attachments as $a) {
    if ($a->id == $cgi->id) {
        $attachment =& $a;
    }
}
if (!$attachment) {
    echo '<script language="javascript" type="text/javascript"> window.close (); </script>';
    exit;
}
if ($cgi->save == 'true') {
    header('Content-Type: application/x-octet-stream');
    header('Content-Disposition: attachment; filename=' . $attachment->name);
} else {
    header('Content-Type: ' . $attachment->mimetype);
}
echo $attachment->body;
exit;
Пример #13
0
    // be able to access directly.
    header('HTTP/1.1 404 Not Found');
    echo "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n" . "<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n" . "The requested URL " . $PHP_SELF . " was not found on this server.<p>\n<hr>\n" . $_SERVER['SERVER_SIGNATURE'] . "</body></html>";
    exit;
}
// END CLI KEEPOUT CHECKING
// jabbercheck scheduler block
// Checks for new incoming jabber instant messages.
global $conf;
if (empty($conf['Messaging']['jabber_server'])) {
    return;
}
loader_import('ext.Jabber');
loader_import('cms.Workspace.Message');
//loader_import ('cms.Workspace.Task');
$m = new WorkspaceMessage();
//$wtsk = new WorkspaceTask ();
$j = new Jabber();
$j->resource = 'Sitellite CMS ' . SITELLITE_VERSION;
$j->server = $conf['Messaging']['jabber_server'];
$j->port = $conf['Messaging']['jabber_port'];
$j->username = $conf['Messaging']['jabber_username'];
$j->password = $conf['Messaging']['jabber_password'];
$j->enable_logging = true;
if (!$j->Connect()) {
    echo $j->log_array[count($j->log_array) - 1] . NEWLINE;
    return;
}
if (!$j->SendAuth()) {
    echo $j->log_array[count($j->log_array) - 1] . NEWLINE;
    return;
Пример #14
0
<?php

global $cgi;
loader_import('cms.Workspace.Message');
loader_import('cms.Workspace.Message.Filters');
loader_import('saf.GUI.DataGrid');
$msg = new WorkspaceMessage();
$limit = session_pref('browse_limit');
if (!$limit) {
    $limit = 10;
}
if (!isset($cgi->offset) || !is_numeric($cgi->offset)) {
    $cgi->offset = 0;
}
if (!isset($cgi->orderBy) || preg_match('/[^a-zA-Z0-9_-]/', $cgi->orderBy)) {
    $cgi->orderBy = 'msg_date';
}
if (!isset($cgi->sort) || $cgi->sort != 'asc' && $cgi->sort != 'desc') {
    $cgi->sort = 'desc';
}
if ($cgi->category == 'Sent') {
    $list = $msg->getSent(false, false, $limit, $cgi->offset, $cgi->orderBy, $cgi->sort);
} elseif ($cgi->category == 'Inbox') {
    $list = $msg->getFolder('', false, $limit, $cgi->offset, $cgi->orderBy, $cgi->sort);
} elseif ($cgi->category == 'Trash') {
    $list = $msg->getTrash($limit, $cgi->offset, $cgi->orderBy, $cgi->sort);
} else {
    $list = $msg->getFolder($cgi->category, false, $limit, $cgi->offset, $cgi->orderBy, $cgi->sort);
}
if ($cgi->category == 'Sent') {
    $dg = new DataGrid('sitellite_message', array('subject' => intl_get('Subject'), 'msg_date' => intl_get('Date'), 'recipients' => intl_get('To')), $limit);
Пример #15
0
<?php

loader_import('cms.Workspace.Message');
$msg = new WorkspaceMessage();
foreach ($parameters['items'] as $item) {
    $msg->trash($item);
}
header('Location: ' . site_prefix() . '/index/cms-messages-category-action?category=' . $parameters['category'] . '&_msg=' . urlencode('The selected messages have been moved to your trash folder.'));
exit;