| [ Index ] |
PHP Cross Reference of Xoops v2.3.1 |
|
[Global whois Lookup] [Ranchi, Jharkhand, India website] [Hindi Magazine] [Desi Community website in tristate area] [B 4 Bollywood] [Internet nation of India] |
|
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Private message module 4 * 5 * You may not change or alter any portion of this comment or credits 6 * of supporting developers from this source code or any supporting source code 7 * which is considered copyrighted (c) material of the original comment or credit authors. 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11 * 12 * @copyright The XOOPS Project http://sourceforge.net/projects/xoops/ 13 * @license http://www.fsf.org/copyleft/gpl.html GNU public license 14 * @package pm 15 * @since 2.3.0 16 * @author Jan Pedersen 17 * @author Taiwen Jiang <phppp@users.sourceforge.net> 18 * @version $Id: viewpmsg.php 2022 2008-08-31 02:07:17Z phppp $ 19 */ 20 21 include_once "../../mainfile.php"; 22 23 if (!is_object($xoopsUser)) { 24 redirect_header(XOOPS_URL, 3, _NOPERM); 25 exit(); 26 } 27 $xoopsConfig['module_cache'] = 0; //disable caching since the URL will be the same, but content different from one user to another 28 $xoopsOption['template_main'] = "pm_viewpmsg.html"; 29 include XOOPS_ROOT_PATH . '/header.php'; 30 31 $_REQUEST['op'] = empty($_REQUEST['op']) ? "in" : $_REQUEST['op']; 32 $start = empty($_REQUEST["start"]) ? 0 : intval($_REQUEST["start"]); 33 $pm_handler =& xoops_getModuleHandler('message'); 34 35 if (isset($_POST['delete_messages']) && isset($_POST['msg_id'])) { 36 if (!$GLOBALS['xoopsSecurity']->check()) { 37 $xoopsTpl->assign('errormsg', implode('<br />', $GLOBALS['xoopsSecurity']->getErrors())); 38 } elseif (empty($_REQUEST['ok'])) { 39 xoops_confirm(array('ok' => 1, 'delete_messages' => 1, 'op' => $_REQUEST['op'], 'msg_id'=> serialize(array_map("intval", $_POST['msg_id']))), $_SERVER['REQUEST_URI'], _PM_RUSUREDELETE); 40 include XOOPS_ROOT_PATH . "/footer.php"; 41 exit(); 42 } else { 43 $_POST['msg_id'] = unserialize($_POST['msg_id']); 44 $size = count($_POST['msg_id']); 45 $msg = $_POST['msg_id']; 46 for ( $i = 0; $i < $size; $i++ ) { 47 $pm =& $pm_handler->get($msg[$i]); 48 if ($pm->getVar('to_userid') == $xoopsUser->getVar('uid')) { 49 $pm_handler->setTodelete($pm); 50 } elseif ($pm->getVar('from_userid') == $xoopsUser->getVar('uid')) { 51 $pm_handler->setFromdelete($pm); 52 } 53 unset($pm); 54 } 55 $xoopsTpl->assign('msg', _PM_DELETED); 56 } 57 } 58 if (isset($_POST['move_messages']) && isset($_POST['msg_id'])) { 59 if (!$GLOBALS['xoopsSecurity']->check()) { 60 $xoopsTpl->assign('errormsg', implode('<br />', $GLOBALS['xoopsSecurity']->getErrors())); 61 } else{ 62 $size = count($_POST['msg_id']); 63 $msg = $_POST['msg_id']; 64 if ($_POST['op'] == 'save') { 65 for ( $i = 0; $i < $size; $i++ ) { 66 $pm =& $pm_handler->get($msg[$i]); 67 if ($pm->getVar('to_userid') == $xoopsUser->getVar('uid')) { 68 $pm_handler->setTosave($pm, 0); 69 } elseif ($pm->getVar('from_userid') == $xoopsUser->getVar('uid')) { 70 $pm_handler->setFromsave($pm, 0); 71 } 72 unset($pm); 73 } 74 } else { 75 if (!$xoopsUser->isAdmin()) { 76 $total_save = $pm_handler->getSavecount(); 77 $size = min($size, ($xoopsModuleConfig['max_save'] - $total_save)); 78 } 79 for ( $i = 0; $i < $size; $i++ ) { 80 $pm =& $pm_handler->get($msg[$i]); 81 if ($_POST['op']=='in') { 82 $pm_handler->setTosave($pm); 83 } elseif ($_POST['op'] == 'out') { 84 $pm_handler->setFromsave($pm); 85 } 86 unset($pm); 87 } 88 } 89 if ($_POST['op'] == 'save') { 90 $xoopsTpl->assign('msg', _PM_UNSAVED); 91 } elseif (isset($total_save) && !$xoopsUser->isAdmin()) { 92 $xoopsTpl->assign('msg', sprintf(_PM_SAVED_PART, $xoopsModuleConfig['max_save'], $i)); 93 } else { 94 $xoopsTpl->assign('msg', _PM_SAVED_ALL); 95 } 96 } 97 } 98 if (isset($_REQUEST['empty_messages'])) { 99 if (!$GLOBALS['xoopsSecurity']->check()) { 100 $xoopsTpl->assign('errormsg', implode('<br />', $GLOBALS['xoopsSecurity']->getErrors())); 101 } elseif (empty($_REQUEST['ok'])) { 102 xoops_confirm(array('ok' => 1, 'empty_messages' => 1, 'op' => $_REQUEST['op']), $_SERVER['REQUEST_URI'], _PM_RUSUREEMPTY); 103 include XOOPS_ROOT_PATH."/footer.php"; 104 exit(); 105 } else { 106 if ($_POST['op'] == 'save') { 107 $crit_to = new CriteriaCompo(new Criteria('to_delete', 0)); 108 $crit_to->add(new Criteria('to_save',1)); 109 $crit_to->add(new Criteria('to_userid',$xoopsUser->getVar('uid'))); 110 $crit_from = new CriteriaCompo(new Criteria('from_delete', 0)); 111 $crit_from->add(new Criteria('from_save', 1)); 112 $crit_from->add(new Criteria('from_userid',$xoopsUser->getVar('uid'))); 113 $criteria = new CriteriaCompo($crit_to); 114 $criteria->add($crit_from, "OR"); 115 } elseif ($_POST['op'] == 'out') { 116 $criteria = new CriteriaCompo(new Criteria('from_delete', 0)); 117 $criteria->add(new Criteria('from_userid', $xoopsUser->getVar('uid'))); 118 $criteria->add(new Criteria('from_save', 0)); 119 } else{ 120 $criteria = new CriteriaCompo(new Criteria('to_delete', 0)); 121 $criteria->add(new Criteria('to_userid', $xoopsUser->getVar('uid'))); 122 $criteria->add(new Criteria('to_save', 0)); 123 } 124 /* 125 * The following method has critical scalability problem ! 126 * deleteAll method should be used instead 127 */ 128 $pms = $pm_handler->getObjects($criteria); 129 unset($criteria); 130 if (count($pms)>0) { 131 foreach (array_keys($pms) as $i) { 132 if ($pms[$i]->getVar('to_userid') == $xoopsUser->getVar('uid')) { 133 if ($_POST['op'] == 'save') { 134 $pm_handler->setTosave($pms[$i], 0); 135 } elseif ($_POST['op'] == 'in') { 136 $pm_handler->setTodelete($pms[$i]); 137 } 138 } 139 if ($pms[$i]->getVar('from_userid') == $xoopsUser->getVar('uid')) { 140 if ($_POST['op']=='save') { 141 $pm_handler->setFromsave($pms[$i],0); 142 } elseif ($_POST['op']=='out') { 143 $pm_handler->setFromdelete($pms[$i]); 144 } 145 } 146 } 147 } 148 $xoopsTpl->assign('msg', _PM_EMPTIED); 149 } 150 } 151 152 if ($_REQUEST['op'] == "out") { 153 $criteria = new CriteriaCompo(new Criteria('from_delete', 0)); 154 $criteria->add(new Criteria('from_userid', $xoopsUser->getVar('uid'))); 155 $criteria->add(new Criteria('from_save', 0)); 156 } elseif ($_REQUEST['op'] == "save") { 157 $crit_to = new CriteriaCompo(new Criteria('to_delete', 0)); 158 $crit_to->add(new Criteria('to_save', 1)); 159 $crit_to->add(new Criteria('to_userid', $xoopsUser->getVar('uid'))); 160 $crit_from = new CriteriaCompo(new Criteria('from_delete', 0)); 161 $crit_from->add(new Criteria('from_save', 1)); 162 $crit_from->add(new Criteria('from_userid', $xoopsUser->getVar('uid'))); 163 $criteria = new CriteriaCompo($crit_to); 164 $criteria->add($crit_from, "OR"); 165 } else { 166 $criteria = new CriteriaCompo(new Criteria('to_delete', 0)); 167 $criteria->add(new Criteria('to_userid', $xoopsUser->getVar('uid'))); 168 $criteria->add(new Criteria('to_save', 0)); 169 } 170 $total_messages = $pm_handler->getCount($criteria); 171 $criteria->setStart($start); 172 $criteria->setLimit($xoopsModuleConfig['perpage']); 173 $criteria->setSort("msg_time"); 174 $criteria->setOrder("DESC"); 175 $pm_arr = $pm_handler->getAll($criteria, null, false); 176 unset($criteria); 177 178 $xoopsTpl->assign('total_messages', $total_messages); 179 $xoopsTpl->assign('op', $_REQUEST['op']); 180 181 if ( $total_messages > $xoopsModuleConfig['perpage']) { 182 include XOOPS_ROOT_PATH . '/class/pagenav.php'; 183 $nav = new XoopsPageNav($total_messages, $xoopsModuleConfig['perpage'], $start, "start", 'op=' . htmlspecialchars($_REQUEST['op'])); 184 $xoopsTpl->assign('pagenav', $nav->renderNav(4)); 185 } 186 187 $xoopsTpl->assign('display', $total_messages > 0); 188 $xoopsTpl->assign('anonymous', $xoopsConfig['anonymous']); 189 if (count($pm_arr)>0) { 190 foreach (array_keys($pm_arr) as $i) { 191 if (isset($_REQUEST['op']) && $_REQUEST['op'] == "out") { 192 $uids[] = $pm_arr[$i]['to_userid']; 193 } else { 194 $uids[] = $pm_arr[$i]['from_userid']; 195 } 196 } 197 $member_handler =& xoops_gethandler('member'); 198 $senders = $member_handler->getUserList(new Criteria('uid', "(" . implode(", ", array_unique($uids) ) . ")", "IN")); 199 foreach (array_keys($pm_arr) as $i) { 200 $message = $pm_arr[$i]; 201 $message['msg_time'] = formatTimestamp($message["msg_time"]); 202 if (isset($_REQUEST['op']) && $_REQUEST['op'] == "out") { 203 $message['postername'] = $senders[$pm_arr[$i]['to_userid']]; 204 $message['posteruid'] = $pm_arr[$i]['to_userid']; 205 } else { 206 $message['postername'] = $senders[$pm_arr[$i]['from_userid']]; 207 $message['posteruid'] = $pm_arr[$i]['from_userid']; 208 } 209 $message['msg_no'] = $i; 210 $xoopsTpl->append('messages', $message); 211 } 212 } 213 214 include_once XOOPS_ROOT_PATH . "/class/xoopsformloader.php"; 215 $send_button = new XoopsFormButton('', 'send', _PM_SEND); 216 $send_button->setExtra("onclick='javascript:openWithSelfMain(\"" . XOOPS_URL . "/modules/pm/pmlite.php?send=1\", \"pmlite\", 550, 450);'"); 217 $delete_button = new XoopsFormButton('', 'delete_messages', _PM_DELETE, 'submit'); 218 $move_button = new XoopsFormButton('', 'move_messages', ($_REQUEST['op'] == 'save') ? _PM_UNSAVE : _PM_TOSAVE, 'submit'); 219 $empty_button = new XoopsFormButton('', 'empty_messages', _PM_EMPTY, 'submit'); 220 221 $pmform = new XoopsForm('', 'pmform', 'viewpmsg.php', 'post', true); 222 $pmform->addElement($send_button); 223 $pmform->addElement($move_button); 224 $pmform->addElement($delete_button); 225 $pmform->addElement($empty_button); 226 $pmform->addElement(new XoopsFormHidden('op', $_REQUEST['op'])); 227 $pmform->assign($xoopsTpl); 228 229 include XOOPS_ROOT_PATH."/footer.php"; 230 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
|
[ Xoops] [PhpNuke] [PostNuke] [Joomla] [Drupal] [E107] [NucleusCms] |
|||
|
[Php-Fusion] [PhpBB] [WordPress] [Typo3] |
|||
| Generated: Mon Oct 27 11:51:45 2008 | |||