public static function deliver(Module_PM $module, GWF_PM $pm) { if (false === ($pmo = GWF_PMOptions::getPMOptions($pm->getReceiver()))) { return 0; } if (!$pmo->isOptionEnabled(GWF_PMOptions::EMAIL_ON_PM)) { return 0; } $sender = $pm->getSender(); $receiver = $pm->getReceiver(); if ('' === ($rec = $receiver->getValidMail())) { return 0; } $sendername = $sender->getID() !== '0' ? $sender->display('user_name') : GWF_HTML::langUser($receiver, 'guest'); $email = new GWF_Mail(); $email->setSender($module->cfgEmailSender()); $email->setReceiver($rec); $email->setSubject($module->langUser($receiver, 'mail_subj', array($sendername))); $autofolder = sprintf('index.php?mo=PM&me=AutoFolder&pmid=%s&uid=%s&token=%s', $pm->getID(), $receiver->getID(), $pm->getHashcode()); $autofolder = Common::getAbsoluteURL($autofolder); $autofolder = GWF_HTML::anchor($autofolder, $autofolder); $delete = sprintf('index.php?mo=PM&me=Delete&pmid=%s&uid=%s&token=%s', $pm->getID(), $receiver->getID(), $pm->getHashcode()); $delete = Common::getAbsoluteURL($delete); $delete = GWF_HTML::anchor($delete, $delete); $email->setBody($module->langUser($receiver, 'mail_body', array($receiver->displayUsername(), $sendername, $pm->display('pm_title'), $pm->display('pm_message'), $autofolder, $delete))); if (false === $email->sendToUser($receiver)) { return -4; } return 1; }
private function getButtons(GWF_PM $pm) { $transid = 'pm_trans_' . $pm->getID(); $u = GWF_Session::getUser(); $buttons = ''; if (false !== ($prevs = $pm->getReplyToPrev())) { foreach ($prevs as $prev) { $buttons .= GWF_Button::prev($prev->getDisplayHREF(), $this->module->lang('btn_prev')); } } if (!$pm->hasDeleted($u)) { $buttons .= GWF_Button::delete($pm->getDeleteHREF($u->getID()), $this->module->lang('btn_delete')); } else { $buttons .= GWF_Button::restore($pm->getRestoreHREF(), $this->module->lang('btn_restore')); } if ($pm->canEdit($u)) { $buttons .= GWF_Button::edit($pm->getEditHREF(), $this->module->lang('btn_edit')); } $buttons .= GWF_Button::options($pm->getAutoFolderHREF(), $this->module->lang('btn_autofolder')); if (!$pm->isGuestPM()) { $buttons .= GWF_Button::reply($pm->getReplyHREF(), $this->module->lang('btn_reply')) . PHP_EOL . GWF_Button::quote($pm->getQuoteHREF(), $this->module->lang('btn_quote')); } $u2 = $pm->getOtherUser($u); $buttons .= GWF_Button::ignore($pm->getIgnoreHREF($pm->getOtherUser($u)), $this->module->lang('btn_ignore', array($u2->display('user_name')))); $buttons .= GWF_Button::translate($pm->getTranslateHREF(), $this->module->lang('btn_translate'), '', 'gwfGoogleTrans(\'' . $transid . '\'); return false;'); if (false !== ($nexts = $pm->getReplyToNext())) { foreach ($nexts as $next) { $buttons .= GWF_Button::next($next->getDisplayHREF(), $this->module->lang('btn_next')); } } return $buttons; }
while (false !== ($row = $db->fetchAssoc($result))) { $o = (int) $row['pm_options']; # Sender $from_opts = $o & 0x4; # smileys // $from_opts |= $o&0x01 ? GWF_PM::READ : 0; # other read $from_opts |= GWF_PM::READ; # I probably have read what i wrote :) $from_opts |= $o & 0x10 ? GWF_PM::OWNER_DELETED : 0; # sender deleted $from_opts |= $o & 0x20 ? GWF_PM::OTHER_DELETED : 0; # reciever deleted // var_dump($o); // var_dump($from_opts); $from = new GWF_PM(array('pm_id' => '0', 'pm_date' => $row['pm_date'], 'pm_owner' => $row['pm_from'], 'pm_folder' => $row['pm_from_folder'], 'pm_parent' => $row['pm_in_reply'], 'pm_to' => $row['pm_to'], 'pm_from' => $row['pm_from'], 'pm_otherid' => 0, 'pm_title' => $row['pm_title'], 'pm_message' => $row['pm_message'], 'pm_options' => $from_opts)); $from->insert(); $to_opts = 0; $to_opts |= $o & 0x1 ? GWF_PM::READ : 0; # meme read $to_opts |= $o & 0x4; # smileys $to_opts |= $o & 0x20 ? GWF_PM::OWNER_DELETED : 0; # sender deleted $to_opts |= $o & 0x10 ? GWF_PM::OTHER_DELETED : 0; # reciever deleted $to = new GWF_PM(array('pm_id' => '0', 'pm_date' => $row['pm_date'], 'pm_owner' => $row['pm_to'], 'pm_folder' => $row['pm_to_folder'], 'pm_parent' => $row['pm_in_reply'], 'pm_to' => $row['pm_to'], 'pm_from' => $row['pm_from'], 'pm_otherid' => $from->getID(), 'pm_title' => $row['pm_title'], 'pm_message' => $row['pm_message'], 'pm_options' => $to_opts)); $to->insert(); $from->saveVar('pm_otherid', $to->getID()); } $db->free($result); $db->dropTable($tmp_name);