getBlog($blogid); // note: PreAddComment and PostAddComment gets called somewhere inside addComment $errormessage = $comments->addComment($blog->getCorrectTime(),$post); if ($errormessage == '1') { // redirect when adding comments succeeded if (postVar('url')) { redirect(postVar('url')); } else { $url = createItemLink($post['itemid']); redirect($url); } } else { // else, show error message using default skin for blog doError($errormessage, new SKIN($blog->getDefaultSkin())); } } // Sends a message from the current member to the member given as argument function sendMessage() { global $CONF, $member; $error = validateMessage(); if ($error != '') doError($error); if (!$member->isLoggedIn()) { $fromMail = postVar('frommail'); if (!isValidMailAddress($fromMail)) doError(_ERROR_BADMAILADDRESS); $fromName = _MMAIL_FROMANON; } else { $fromMail = $member->getEmail(); $fromName = $member->getDisplayName(); } $tomem = new MEMBER(); $tomem->readFromId(postVar('memberid')); $message = _MMAIL_MSG . ' ' . $fromName . "\n" . '(' . _MMAIL_FROMNUC. ' ' . $CONF['IndexURL'] .") \n\n" . _MMAIL_MAIL . " \n\n" . postVar('message'); $message .= getMailFooter(); $title = _MMAIL_TITLE . ' ' . $fromName; // mail($tomem->getEmail(), $title, $message, 'From: '. $fromMail); mb_language('ja'); mb_internal_encoding(_CHARSET); @mb_send_mail($tomem->getEmail(), $title, $message, "From: ". $fromMail); if (postVar('url')) { redirect(postVar('url')); } else { $CONF['MemberURL'] = $CONF['IndexURL']; if ($CONF['URLMode'] == 'pathinfo') $url = createMemberLink($tomem->getID()); else $url = $CONF['IndexURL'] . createMemberLink($tomem->getID()); redirect($url); } } function validateMessage() { global $CONF, $member, $manager; if (!$CONF['AllowMemberMail']) return _ERROR_MEMBERMAILDISABLED; if (!$member->isLoggedIn() && !$CONF['NonmemberMail']) return _ERROR_DISALLOWED; if (!$member->isLoggedIn() && (!isValidMailAddress(postVar('frommail')))) return _ERROR_BADMAILADDRESS; // let plugins do verification (any plugin which thinks the comment is invalid // can change 'error' to something other than '') $result = ''; $manager->notify('ValidateForm', array('type' => 'membermail', 'error' => &$result)); return $result; } // creates a new user account function createAccount() { global $CONF, $manager; if (!$CONF['AllowMemberCreate']) doError(_ERROR_MEMBERCREATEDISABLED); // create random password $pw = genPassword(10); // create member (non admin/can login/no notes) $r = MEMBER::create(postVar('name'), postVar('realname'), $pw, postVar('email'), postVar('url'), 0, $CONF['NewMemberCanLogon'], ''); if ($r != 1) doError($r); // send message containing password. $newmem = new MEMBER(); $newmem->readFromName(postVar('name')); $newmem->sendPassword($pw); $manager->notify('PostRegister',array('member' => &$newmem)); if (postVar('desturl')) { redirect(postVar('desturl')); } else { header ("Content-Type: text/html; charset="._CHARSET); echo _MSG_ACCOUNTCREATED; } } // sends a new password function forgotPassword() { $membername = trim(postVar('name')); if (!MEMBER::exists($membername)) doError(_ERROR_NOSUCHMEMBER); $mem = MEMBER::createFromName($membername); // check if e-mail address is correct if (!($mem->getEmail() == postVar('email'))) doError(_ERROR_INCORRECTEMAIL); $pw = genPassword(10); $mem->setPassword($pw); // change password $mem->write(); // save $mem->sendPassword($pw);// send if (postVar('url')) { redirect(postVar('url')); } else { header ("Content-Type: text/html; charset="._CHARSET); echo _MSG_PASSWORDSENT; } } // handle karma votes function doKarma($type) { global $itemid, $member, $CONF, $manager; // check if itemid exists if (!$manager->existsItem($itemid,0,0)) doError(_ERROR_NOSUCHITEM); $blogid = getBlogIDFromItemID($itemid); checkban($blogid); $karma =& $manager->getKarma($itemid); // check if not already voted if (!$karma->isVoteAllowed(serverVar('REMOTE_ADDR'))) doError(_ERROR_VOTEDBEFORE); // check if item does allow voting $item =& $manager->getItem($itemid,0,0); if ($item['closed']) doError(_ERROR_ITEMCLOSED); switch($type) { case 'pos': $karma->votePositive(); break; case 'neg': $karma->voteNegative(); break; } $blogid = getBlogIDFromItemID($itemid); $blog =& $manager->getBlog($blogid); // send email to notification address, if any if ($blog->getNotifyAddress() && $blog->notifyOnVote()) { $mailto_msg = _NOTIFY_KV_MSG . ' ' . $itemid . "\n"; $mailto_msg .= $CONF['IndexURL'] . 'index.php?itemid=' . $itemid . "\n\n"; if ($member->isLoggedIn()) { $mailto_msg .= _NOTIFY_MEMBER . ' ' . $member->getDisplayName() . ' (ID=' . $member->getID() . ")\n"; } $mailto_msg .= _NOTIFY_IP . ' ' . serverVar('REMOTE_ADDR') . "\n"; $mailto_msg .= _NOTIFY_HOST . ' ' . gethostbyaddr(serverVar('REMOTE_ADDR')) . "\n"; $mailto_msg .= _NOTIFY_VOTE . "\n " . $type . "\n"; $mailto_msg .= getMailFooter(); $mailto_title = _NOTIFY_KV_TITLE . ' ' . strip_tags($item['title']) . ' (' . $itemid . ')'; $frommail = $member->getNotifyFromMailAddress(); $notify = new NOTIFICATION($blog->getNotifyAddress()); $notify->notify($mailto_title, $mailto_msg , $frommail); } $refererUrl = serverVar('HTTP_REFERER'); if ($refererUrl) $url = $refererUrl; else $url = $CONF['IndexURL'] . 'index.php?itemid=' . $itemid; redirect($url); } /** * Calls a plugin action */ function callPlugin() { global $manager; $pluginName = 'NP_' . requestVar('name'); $actionType = requestVar('type'); // 1: check if plugin is installed if (!$manager->pluginInstalled($pluginName)) doError(_ERROR_NOSUCHPLUGIN); // 2: call plugin $pluginObject =& $manager->getPlugin($pluginName); if ($pluginObject) $error = $pluginObject->doAction($actionType); else $error = 'Could not load plugin (see actionlog)'; // doAction returns error when: // - an error occurred (duh) // - no actions are allowed (doAction is not implemented) if ($error) doError($error); } function checkban($blogid) { // check if banned $ban = BAN::isBanned($blogid, serverVar('REMOTE_ADDR')); if ($ban != 0) { doError(_ERROR_BANNED1 . $ban->iprange . _ERROR_BANNED2 . $ban->message . _ERROR_BANNED3); } } ?>