/** * Helper method to handle the mailing for abos of postings and forums */ public static function aboMailing($args) { $id = $args['id']; $parent = $args['parent']; if ($parent == '') { $parent = 0; } $title = $args['title']; $text = $args['text']; if (ModUtil::available('BBCode')) { $text = ModUtil::apiFunc('BBCode', 'user', 'transform', array('message' => $text)); } if (ModUtil::available('BBSmile')) { $text = ModUtil::apiFunc('BBSmile', 'user', 'transform', array('text' => $text)); } // we get a repository for abos $repository = MUBoard_Util_Model::getAboRepository(); // we get a repository for forums $repository2 = MUBoard_Util_Model::getForumRepository(); // we get a repository for postings $repository3 = MUBoard_Util_Model::getPostingRepository(); // we get the just saved posting $savedPosting = $repository3->selectById($id); $createdUserId = $savedPosting->getCreatedUserId(); $forum = $savedPosting->getForum(); $forumid = $forum->getId(); // we get serviceManager and handler $serviceManager = ServiceUtil::getManager(); $handler = new Zikula_Form_View($serviceManager, 'MUBoard'); // We build the url for the email message $host = System::serverGetVar('HTTP_HOST') . '/'; // workaround because of bug in MOST or doctrine2 TODO if ($parent == 0) { $url = 'http://' . $host . ModUtil::url('MUBoard', 'user', 'display', array('ot' => 'posting', 'id' => $id)); } else { $url = 'http://' . $host . ModUtil::url('MUBoard', 'user', 'display', array('ot' => 'posting', 'id' => $parent)); } // We get the name of the site $from = ModUtil::getVar('ZConfig', 'sitename') . ' '; // We get the adminmail $fromaddress = ModUtil::getVar('ZConfig', 'adminmail'); $toaddress = self::getForumAbos($forumid, $createdUserId); foreach ($toaddress as $address) { if (filter_var($address, FILTER_VALIDATE_EMAIL)) { $messagecontent = self::getMailContent($from, $fromaddress, $address, $forum, $title, $text, $url, $kind, $parent); ModUtil::apiFunc('Mailer', 'user', 'sendmessage', $messagecontent); } } }
/** * This method gives back if new postings are in the * forum since last login and show the relevant icon * @param itemid id of the relevant item * @param kind 1 we check for forums, 2 we check for issues */ public static function PostingsSinceLastLogin($itemid, $kind = 1) { $dom = ZLanguage::getModuleDomain('MUBoard'); if ($kind == 1) { // get repositoy for Forum $repository = MUBoard_Util_Model::getForumRepository(); // get forum by id $forum = $repository->selectById($itemid); $forumid = $forum->getId(); // we get the saved postingids $postingids = SessionUtil::getVar('muboardpostingids'); if (count($postingids) > 0 && is_array($postingids)) { $postingids = implode(",", $postingids); // get repository for Posting $repository2 = MUBoard_Util_Model::getPostingRepository(); $where = 'tbl.forum = \'' . DataUtil::formatForStore($itemid) . '\''; $where .= ' AND '; $where .= 'tbl.id IN (' . $postingids . ')'; $countpostings = $repository2->selectCount($where); if ($countpostings > 0) { $out = self::getOut(); } else { $out = self::getOut(2); } } else { $out = self::getOut(2); } } if ($kind == 2) { // get repository for Posting $repository = MUBoard_Util_Model::getPostingRepository(); // get postingid $posting = $repository->selectById($itemid); $postingid = $posting->getId(); $postingids = SessionUtil::getVar('muboardpostingids'); if ($postingids) { if (in_array($postingid, $postingids)) { $out = self::getOut(); } else { $out = self::getOut(2); } } else { $out = self::getOut(2); } } return $out; }