| 1 |
<?php |
<?php |
| 2 |
// $Id: messagebox.module,v 1.2 2007/11/24 00:34:58 panis Exp $ |
// $Id: messagebox.module,v 1.3 2007/11/24 00:42:43 panis Exp $ |
| 3 |
|
|
| 4 |
/** |
/** |
| 5 |
A Drupal messenger module (http://Drupal.org). |
A Drupal messenger module (http://Drupal.org). |
| 38 |
/** |
/** |
| 39 |
* helper function |
* helper function |
| 40 |
*/ |
*/ |
| 41 |
function shorter_name($name) { |
function _messagebox_shorter_name($name) { |
| 42 |
if(strlen($name) > 20) { |
if(strlen($name) > 20) { |
| 43 |
return substr($name, 0, 20) . '...'; |
return substr($name, 0, 20) . '...'; |
| 44 |
} |
} |
| 93 |
|
|
| 94 |
while($uid = db_fetch_object($users)) { |
while($uid = db_fetch_object($users)) { |
| 95 |
if($uid->status == 1) { |
if($uid->status == 1) { |
| 96 |
$items[t('on-line users')][$uid->uid] = shorter_name($uid->name); |
$items[t('on-line users')][$uid->uid] = _messagebox_shorter_name($uid->name); |
| 97 |
} |
} |
| 98 |
else { |
else { |
| 99 |
$items[t('off-line users')][$uid->uid] = shorter_name($uid->name); |
$items[t('off-line users')][$uid->uid] = _messagebox_shorter_name($uid->name); |
| 100 |
} |
} |
| 101 |
} |
} |
| 102 |
|
|
| 178 |
$autocomplete = variable_get('messagebox_autocomplete', 0); |
$autocomplete = variable_get('messagebox_autocomplete', 0); |
| 179 |
|
|
| 180 |
$num_messages = 0; |
$num_messages = 0; |
| 181 |
if($row = db_fetch_object(db_query('SELECT count(mid) as num_messages FROM {messenger} WHERE rid = %d AND is_read = 0', $user->uid))) { |
if($row = db_fetch_object(db_query('SELECT count(mid) as num_messages FROM {messagebox} WHERE rid = %d AND is_read = 0', $user->uid))) { |
| 182 |
$num_messages = $row->num_messages; |
$num_messages = $row->num_messages; |
| 183 |
} |
} |
| 184 |
|
|
| 395 |
|
|
| 396 |
foreach ($rids as $rid) { |
foreach ($rids as $rid) { |
| 397 |
db_query(' |
db_query(' |
| 398 |
INSERT INTO {messenger} ( |
INSERT INTO {messagebox} ( |
| 399 |
sid, |
sid, |
| 400 |
rid, |
rid, |
| 401 |
aid, |
aid, |
| 413 |
)', $user->uid, $rid, $aid, $message, time()); |
)', $user->uid, $rid, $aid, $message, time()); |
| 414 |
} |
} |
| 415 |
|
|
| 416 |
db_query('INSERT INTO {messenger} ( |
db_query('INSERT INTO {messagebox} ( |
| 417 |
sid, |
sid, |
| 418 |
aid, |
aid, |
| 419 |
message, |
message, |
| 440 |
m.timestamp, |
m.timestamp, |
| 441 |
m.headers |
m.headers |
| 442 |
FROM |
FROM |
| 443 |
{messenger} m |
{messagebox} m |
| 444 |
WHERE |
WHERE |
| 445 |
m.sid = %d |
m.sid = %d |
| 446 |
AND m.rid = 0 |
AND m.rid = 0 |
| 449 |
// |
// |
| 450 |
$result = db_query($query, $user->uid); |
$result = db_query($query, $user->uid); |
| 451 |
|
|
| 452 |
$img_attach = drupal_get_path('module', 'messagebox') . '/images/ImgAttachment.gif'; |
$img_attach = _messagebox_image('ImgAttachment.gif'); |
| 453 |
$rows = array(); |
$rows = array(); |
| 454 |
if(db_num_rows($result)) { |
if(db_num_rows($result)) { |
| 455 |
// "delete all" link |
// "delete all" link |
| 505 |
u.uid, |
u.uid, |
| 506 |
u.name |
u.name |
| 507 |
FROM |
FROM |
| 508 |
{messenger} m |
{messagebox} m |
| 509 |
LEFT OUTER JOIN {users} u |
LEFT OUTER JOIN {users} u |
| 510 |
ON (m.sid = u.uid) |
ON (m.sid = u.uid) |
| 511 |
WHERE |
WHERE |
| 520 |
$form = array(); |
$form = array(); |
| 521 |
|
|
| 522 |
$rows = array(); |
$rows = array(); |
| 523 |
$img_attach = drupal_get_path('module', 'messagebox') . '/images/ImgAttachment.gif'; |
$img_attach = _messagebox_image('ImgAttachment.gif'); |
| 524 |
if(db_num_rows($result)) { |
if(db_num_rows($result)) { |
| 525 |
// title |
// title |
| 526 |
|
|
| 574 |
u.uid, |
u.uid, |
| 575 |
u.name |
u.name |
| 576 |
FROM |
FROM |
| 577 |
{messenger} m |
{messagebox} m |
| 578 |
LEFT OUTER JOIN {users} u |
LEFT OUTER JOIN {users} u |
| 579 |
ON (m.sid = u.uid) |
ON (m.sid = u.uid) |
| 580 |
WHERE |
WHERE |
| 589 |
$form = array(); |
$form = array(); |
| 590 |
|
|
| 591 |
$rows = array(); |
$rows = array(); |
| 592 |
$img_attach = drupal_get_path('module', 'messagebox') . '/images/ImgAttachment.gif'; |
$img_attach = _messagebox_image('ImgAttachment.gif'); |
| 593 |
if(db_num_rows($result)) { |
if(db_num_rows($result)) { |
| 594 |
// title |
// title |
| 595 |
|
|
| 632 |
function messagebox_op($op, $mid=0) { |
function messagebox_op($op, $mid=0) { |
| 633 |
switch($op) { |
switch($op) { |
| 634 |
case 'delete_all_sent': |
case 'delete_all_sent': |
| 635 |
db_query('DELETE FROM {messenger} WHERE sid = %d AND rid = 0', $mid); |
db_query('DELETE FROM {messagebox} WHERE sid = %d AND rid = 0', $mid); |
| 636 |
break; |
break; |
| 637 |
case 'delete_all_archived': |
case 'delete_all_archived': |
| 638 |
db_query('DELETE FROM {messenger} WHERE rid = %d AND is_read=1', $mid); |
db_query('DELETE FROM {messagebox} WHERE rid = %d AND is_read=1', $mid); |
| 639 |
break; |
break; |
| 640 |
case 'delete': |
case 'delete': |
| 641 |
db_query('DELETE FROM {messenger} WHERE mid = %d', $mid); |
db_query('DELETE FROM {messagebox} WHERE mid = %d', $mid); |
| 642 |
drupal_set_message('Deleted Message'); |
drupal_set_message('Deleted Message'); |
| 643 |
break; |
break; |
| 644 |
case 'mark_as_read': |
case 'mark_as_read': |
| 645 |
db_query('UPDATE {messenger} SET is_read = 1 WHERE mid = %d', $mid); |
db_query('UPDATE {messagebox} SET is_read = 1 WHERE mid = %d', $mid); |
| 646 |
drupal_set_message('Marked Message are read'); |
drupal_set_message('Marked Message are read'); |
| 647 |
break; |
break; |
| 648 |
case 'mark_all_as_read': |
case 'mark_all_as_read': |
| 649 |
drupal_set_message('Marked all Messages are read'); |
drupal_set_message('Marked all Messages are read'); |
| 650 |
db_query('UPDATE {messenger} SET is_read = 1 WHERE rid = %d', $mid); |
db_query('UPDATE {messagebox} SET is_read = 1 WHERE rid = %d', $mid); |
| 651 |
break; |
break; |
| 652 |
default: |
default: |
| 653 |
//drupal page not found error |
//drupal page not found error |
| 664 |
|
|
| 665 |
// the $user->uid is needed for security |
// the $user->uid is needed for security |
| 666 |
if(arg(1) == 'delete') { |
if(arg(1) == 'delete') { |
| 667 |
db_query('DELETE FROM {messenger} WHERE mid = %d AND (rid = %d OR sid=%d)', arg(2), $user->uid, $user->uid); |
db_query('DELETE FROM {messagebox} WHERE mid = %d AND (rid = %d OR sid=%d)', arg(2), $user->uid, $user->uid); |
| 668 |
} |
} |
| 669 |
else if(arg(1) == 'delete_all') { |
else if(arg(1) == 'delete_all') { |
| 670 |
if(arg(2) == 'sent') { |
if(arg(2) == 'sent') { |
| 671 |
db_query('DELETE FROM {messenger} WHERE sid = %d and rid = 0', $user->uid); |
db_query('DELETE FROM {messagebox} WHERE sid = %d and rid = 0', $user->uid); |
| 672 |
} |
} |
| 673 |
else { |
else { |
| 674 |
db_query('DELETE FROM {messenger} WHERE rid = %d AND is_read = 1', $user->uid); |
db_query('DELETE FROM {messagebox} WHERE rid = %d AND is_read = 1', $user->uid); |
| 675 |
} |
} |
| 676 |
} |
} |
| 677 |
else if(arg(1) == 'mark_as_read') { |
else if(arg(1) == 'mark_as_read') { |
| 678 |
db_query('UPDATE {messenger} SET is_read = 1 WHERE mid = %d AND rid = %d', arg(2), $user->uid); |
db_query('UPDATE {messagebox} SET is_read = 1 WHERE mid = %d AND rid = %d', arg(2), $user->uid); |
| 679 |
} |
} |
| 680 |
else if(arg(1) == 'mark_all_as_read') { |
else if(arg(1) == 'mark_all_as_read') { |
| 681 |
db_query('UPDATE {messenger} SET is_read = 1 WHERE rid = %d AND is_read = 0', $user->uid); |
db_query('UPDATE {messagebox} SET is_read = 1 WHERE rid = %d AND is_read = 0', $user->uid); |
| 682 |
} |
} |
| 683 |
|
|
| 684 |
|
|
| 721 |
*/ |
*/ |
| 722 |
function messagebox_user($op, &$edit, &$account, $category = NULL) { |
function messagebox_user($op, &$edit, &$account, $category = NULL) { |
| 723 |
if($op == 'delete') { |
if($op == 'delete') { |
| 724 |
db_query('DELETE FROM {messenger} WHERE sid = %d OR rid = %d', $account->uid, $account->uid); |
db_query('DELETE FROM {messagebox} WHERE sid = %d OR rid = %d', $account->uid, $account->uid); |
| 725 |
drupal_set_message(t('%user\'s messenger messages deleted', array('%user' => $account->name))); |
drupal_set_message(t('%user\'s messenger messages deleted', array('%user' => $account->name))); |
| 726 |
} |
} |
| 727 |
} |
} |
| 961 |
if(is_numeric(arg(3))) { |
if(is_numeric(arg(3))) { |
| 962 |
//is a reply.. store it if necessary |
//is a reply.. store it if necessary |
| 963 |
$mid = arg(3); |
$mid = arg(3); |
| 964 |
$msg = db_fetch_object(db_query('SELECT * FROM {messenger} WHERE mid=%d', $mid)); |
$msg = db_fetch_object(db_query('SELECT * FROM {messagebox} WHERE mid=%d', $mid)); |
| 965 |
|
|
| 966 |
$form['fieldset']['messagebox_message']['#default_value'] = |
$form['fieldset']['messagebox_message']['#default_value'] = |
| 967 |
t('Forwarded Message') . "\n" . |
t('Forwarded Message') . "\n" . |
| 968 |
t('From: ') . $msg->name . "\n" . |
">" . t('From: ') . check_plain($msg->name) . "\n" . |
| 969 |
$msg->message; |
$msg->message; |
| 970 |
} |
} |
| 971 |
|
|
| 1047 |
} |
} |
| 1048 |
|
|
| 1049 |
|
|
| 1050 |
|
function _messagebox_image($name) { |
| 1051 |
|
return base_path() . drupal_get_path('module', 'messagebox') . '/images/' . $name; |
| 1052 |
|
} |