/** * singleton getter * * @param void * @return PApps */ public static function get() { if (!isset(self::$_instance)) { $c = __CLASS__; self::$_instance = new $c(); } return self::$_instance; }
public function __construct($member) { $this->member = $member; if ($member) { $this->hasSuggestionRight = $this->checkSuggestionRight(); $this->disableTinyMCE = $member->getPreference("PreferenceDisableTinyMCE", $default = "No"); if ($member->Status != 'ChoiceInactive') { $this->viewOnly = false; } } $this->purifier = MOD_htmlpure::getSuggestionsHtmlPurifier(); }
protected function column_col3() { $words = $this->getWords(); $member = $this->member; $visitor_count = $this->member->getVisitorCount(); $layoutbits = new MOD_layoutbits(); $purifier = MOD_htmlpure::getBasicHtmlPurifier(); if (!$visitor_count) { echo $words->get("ProfileNoVisitors"); return; } $params = new StdClass(); $params->strategy = new HalfPagePager('right'); $params->items = $visitor_count; $params->items_per_page = 20; $pager = new PagerWidget($params); $pager->render(); echo '<div class="myvisitors">'; foreach ($member->getVisitorsSubset($pager) as $m) { $image = new MOD_images_Image('', $m->Username); $image = MOD_layoutbits::PIC_50_50($m->Username, '', $style = 'float_left framed'); if ($m->HideBirthDate == "No") { $m->age = floor($layoutbits->fage_value($m->BirthDate)); } else { $m->age = $words->get("Hidden"); } echo <<<HTML <div class="subcolumns"> <div class="c33l"> <div class="subcl"> {$image} <div class="userinfo"> <a class="username" href="members/{$m->Username}">{$m->Username}</a><br /> <p class="small">{$words->getFormatted("visited")}: {$layoutbits->ago(strtotime($m->visited))}</p> <p class="small">{$words->getFormatted("yearsold", $m->age)}, {$m->city}</p> </div> </div> </div> <div class="c66r"> <div class="subcr"> <div class="profilesummary">{$purifier->purify(stripslashes($words->mInTrad($m->ProfileSummary, $language_id = 0, true)))}</div> </div> </div> </div> HTML; } echo "</div>"; }
private function informSuggestionTeam($suggestion) { // get all team members $query = "\r\n SELECT\r\n username\r\n FROM\r\n members, rights, rightsvolunteers\r\n WHERE\r\n members.Status = 'Active'\r\n AND members.id = rightsvolunteers.IdMember\r\n AND rights.`Name` = 'Suggestions'\r\n AND rightsvolunteers.IdRight = rights.id\r\n AND rightsvolunteers.Level > 0\r\n ORDER BY\r\n username\r\n "; $res = $this->dao->query($query); if (!$res) { return false; } $receivers = array(); while ($row = $res->fetch(PDB::FETCH_OBJ)) { $member = $this->createEntity('Member')->findByUsername($row->username); $email = MOD_crypt::AdminReadCrypted($member->Email); $receivers[$email] = "BW " . $row->username; } //Create the Transport $transport = Swift_SmtpTransport::newInstance('localhost', 25); //Create the Mailer using your created Transport $mailer = Swift_Mailer::newInstance($transport); $purifier = MOD_htmlpure::getSuggestionsHtmlPurifier(); $plain = 'Please check the suggestion and take the necessary <a href="' . PVars::getObj('env')->baseuri . 'suggestions/' . $suggestion->id . '/approve">action</a>.'; $html = $purifier->purify($suggestion->description) . '<br/>' . $plain; try { $creator = $this->createEntity('Member')->findById($suggestion->createdby); $message = Swift_Message::newInstance(); $message->setSubject("New suggestion added by " . $creator->Username . ": " . $suggestion->summary); $message->setFrom("*****@*****.**"); $message->setBcc($receivers); $message->addPart($html, 'text/html', 'utf-8'); $message->addPart($plain, 'text/plain', 'utf-8'); $message->setBody($plain); } catch (Exception $e) { $this->logWrite("In suggestions model creating mail message threw exception.", "suggestions"); return false; } //Now check if Swift actually sends it try { $sendResult = $mailer->send($message); } catch (Exception $e) { $this->logWrite("Exception when executing Swift_Mailer::send()", "suggestions"); $sendResult = false; } if ($sendResult) { return true; } else { $this->logWrite("In suggestions model swift::send: Failed to send mail.", "suggestions"); return false; } }
/** * Sends a mail to member's email address (i.e. for notifications). * * @param string $subject Email subject. * @param string $body Email body. */ public function sendMail($subject, $body) { $from = PVars::getObj('mailAddresses')->noreply; $to = $this->getEmailWithoutPermissionChecks(); // Create HTML version via purifier (linkify and add paragraphs) $purifier = MOD_htmlpure::getAdvancedHtmlPurifier(); $bodyHTML = $purifier->purify($body); if ($this->getPreference('PreferenceHtmlMails', 'Yes') == 'No') { $memberPrefersHtml = false; } else { $memberPrefersHtml = true; } //clear <br> tags stored in database //$body = strip_tags($body); // Set language for email translations $languageCode = $this->getLanguagePreference(); // TODO: Error handling $result = MOD_mail::sendEmail($subject, $from, $to, false, $bodyHTML, $languageCode, $memberPrefersHtml); }
public function __construct($model = false) { parent::__construct(); $this->purifier = MOD_htmlpure::getSuggestionsHtmlPurifier(); }
echo $words->get('written_by'); ?> <a href="user/<?php echo $blog->user_handle; ?> "><?php echo $blog->user_handle; ?> </a> - <?php echo date($format['short'], $blog->unix_created); ?> </span> <p> <?php $snippet = strlen($txt[0]) > 600 ? substr($txt[0], 0, 600) . '...' : $txt[0]; $purifier = MOD_htmlpure::get()->getPurifier(); echo $purifier->purify($snippet); if ($txt[1]) { echo '<p> <a href="blog/' . $blog->user_handle . '/' . $blog->blog_id . '">' . $words->get('BlogItemContinued') . '</a></p>'; } ?> </p> <?php } } ?> <a href="blog/tags/Community News for the frontpage"><?php echo $words->get('ReadMore'); ?> </a>
protected function column_col3() { // get translation module $layoutkit = $this->layoutkit; $words = $layoutkit->getWords(); $model = $this->getModel(); $members = $this->group->getMembers(); $need_approval = $this->group->getMembers('WantToBeIn'); $invited = $this->group->getMembers('Invited'); ?> <div id="groups"> <div class="subcolumns"> <h3><?php echo $words->get('GroupsAdministrateMembers'); ?> </h3> <div class="c50l"> <div class="subcl"> <h4><?php echo $words->get('GroupsCurrentMembers'); ?> </h4> <?php $this->pager_widget->render(); ?> <table id='current_members'> <tr> <th colspan="2"><?php echo $words->get('Username'); ?> </th> <th><?php echo $words->get('Action'); ?> </th> </tr> <?php $purifier = MOD_htmlpure::getBasicHtmlPurifier(); $count = 0; foreach ($this->pager_widget->getActiveSubset($this->group->getMembers('In', $this->pager_widget->getActiveStart(), $this->pager_widget->getActiveLength())) as $member) { ?> <tr> <td><?php echo MOD_layoutbits::linkWithPicture($member->Username); ?> </td> <td><a href="members/<?php echo $member->Username; ?> " class="username"><?php echo $member->Username; ?> </a></td> <td> <?php $groupid = $this->group->getPKValue(); $memberid = $member->getPKValue(); $BWAdmin = $this->isBWAdmin; if ($this->member->getPKValue() == $memberid && !$BWAdmin) { echo "<a class='resignAdmin' href='groups/{$groupid}/resignAdmin'>{$words->getSilent('resignAsAdmin')}</a>"; } elseif ($this->member->getPKValue() == $memberid && $BWAdmin) { echo "SuperAdminPower!"; } else { if ($this->group->isGroupOwner($member) && !$BWAdmin) { echo $words->getSilent('MemberIsAdmin'); } elseif ($this->group->isGroupOwner($member) && $BWAdmin) { echo $words->getSilent('MemberIsAdmin'); echo " / <a class='ban' href='groups/{$groupid}/banmember/{$memberid}'>{$words->getSilent('GroupsBanMember')}</a>"; echo " / <a class='kick' href='groups/{$groupid}/kickmember/{$memberid}'>{$words->getSilent('GroupsKickMember')}</a>"; } else { echo "<a class='addAdmin' href='groups/{$groupid}/addAdmin/{$memberid}'>{$words->getSilent('GroupsAddAdmin')}</a>"; echo " / <a class='ban' href='groups/{$groupid}/banmember/{$memberid}'>{$words->getSilent('GroupsBanMember')}</a>"; echo " / <a class='kick' href='groups/{$groupid}/kickmember/{$memberid}'>{$words->getSilent('GroupsKickMember')}</a>"; } } ?> </td> </tr> <?php $count++; } echo "</table>"; $this->pager_widget->render(); ?> <script type='text/javascript'> var memberban = $('current_members').getElementsBySelector('a.ban'); var memberkick = $('current_members').getElementsBySelector('a.kick'); var memberasadmin = $('current_members').getElementsBySelector('a.addAdmin'); var resignasadmin = $('current_members').getElementsBySelector('a.resignAdmin'); memberban.each(function(elem){ elem.observe('click', function(e){ if (!confirm('<?php echo $this->javascript_escape($words->getSilent('GroupsConfirmMemberBan')); ?> ')) { Event.stop(e); } }) }); memberkick.each(function(elem){ elem.observe('click', function(e){ if (!confirm('<?php echo $this->javascript_escape($words->getSilent('GroupsConfirmMemberKick')); ?> ')) { Event.stop(e); } }) }); memberasadmin.each(function(elem){ elem.observe('click', function(e){ if (!confirm('<?php echo $this->javascript_escape($words->getSilent('GroupsConfirmMemberAsAdmin')); ?> ')) { Event.stop(e); } }) }); resignasadmin.each(function(elem){ elem.observe('click', function(e){ if (!confirm('<?php echo $this->javascript_escape($words->getSilent('GroupsConfirmResignAsAdmin')); ?> ')) { Event.stop(e); } }) }); </script> <?php echo $words->flushBuffer(); ?> </div> <!-- subcl --> </div> <!-- c62l --> <div class="c50r"> <?php if ($this->group->Type != 'Public') { ?> <div class="subcl"> <h4><?php echo $words->get('GroupsProspectiveMembers'); ?> </h4> <table id='possible_members'> <tr> <th colspan="2"><?php echo $words->get('Username'); ?> </th> <th><?php echo $words->get('Action'); ?> </th> </tr> <?php foreach ($need_approval as $member) { ?> <tr> <td><?php echo MOD_layoutbits::linkWithPicture($member->Username); ?> </td> <td><a href="members/<?php echo $member->Username; ?> " class="username"><?php echo $member->Username; ?> </a></td> <td><?php echo $this->member->getPKValue() == $member->getPKValue() ? '' : "<a class='accept' href='groups/{$this->group->getPKValue()}/acceptmember/{$member->getPKValue()}'>" . $words->get('GroupsAcceptMember') . "</a><br>\n <a class='kick' href='groups/{$this->group->getPKValue()}/declinemember/{$member->getPKValue()}'>" . $words->get('GroupsDeclineMember') . "</a><br>\n <a class='ban' href='groups/{$this->group->getPKValue()}/banmember/{$member->getPKValue()}'>" . $words->get('GroupsBanMember') . "</a>"; ?> </td> </tr> <?php } ?> </table> </div> <!-- subcl --> <?php } ?> <div class='subcl'> <h4><?php echo $words->get('GroupsInvitedMembers'); ?> </h4> <table id='invited_members'> <tr> <th colspan="2"><?php echo $words->get('Username'); ?> </th> </tr> <?php if ($invited) { ?> <?php foreach ($invited as $member) { ?> <tr> <td><?php echo MOD_layoutbits::linkWithPicture($member->Username); ?> </td> <td><a href="members/<?php echo $member->Username; ?> " class="username"><?php echo $member->Username; ?> </a></td> </tr> <?php } } ?> </table> </div> <div class='subcl'> <h4><?php echo $words->get('GroupsInviteMember'); ?> </h4> <div id='search_result' style='display: none;padding: 3px; margin-bottom: 3px'></div> <form method='get' action='groups/<?php echo $this->group->getPKValue(); ?> /invitemembers/search' id='invite_form'> <input type='text' value='<?php echo $words->getSilent('GroupsEnterUsername'); ?> ' name='username' id='search_username'/><input type='submit' value='<?php echo $words->getSilent('Search'); ?> ' id='search_username_submit'/> </form> <?php echo $words->flushBuffer(); ?> </div> <script type='text/javascript'> var possiblemembers = $('possible_members'); if (possiblemembers) { var newmemberban = $('possible_members').getElementsBySelector('a.ban'); var newmemberkick = $('possible_members').getElementsBySelector('a.kick'); newmemberban.each(function (elem) { elem.observe('click', function (e) { if (!confirm('<?php echo $this->javascript_escape($words->getSilent('GroupsConfirmMemberBan')); ?> ')) { Event.stop(e); } }) }); newmemberkick.each(function (elem) { elem.observe('click', function (e) { if (!confirm('<?php echo $this->javascript_escape($words->getSilent('GroupsConfirmMemberDecline')); ?> ')) { Event.stop(e); } }) }); } var search_handler = { display_result: function(member_object){ var search_div = $('search_result'); search_div.innerHTML = ''; search_div.style.border = '1px solid black'; search_div.style.display = 'block'; search_div.style.backgroundColor = '#ffffff'; var counter = 0; for (var m in member_object) { var a = document.createElement('a'); a.href = ''; a.id = 'invite_member_' + member_object[m]; a.title = '<?php echo $this->javascript_escape($words->get('GroupsClickToSendInvite')); ?> ' + m; a.appendChild(document.createTextNode('<?php echo $this->javascript_escape($words->getSilent('GroupsInvite')); ?> ' + m)); $(a).observe('click',function(e){ e = e || window.event; search_handler.add_invite(e); Event.stop(e); }); search_div.appendChild(a); search_div.appendChild(document.createElement('br')); counter++; } if (counter == 0) { search_div.appendChild(document.createTextNode('<?php echo $this->javascript_escape($words->getSilent('GroupsCouldNotFindMembers')); ?> ')); } }, add_invite: function(e){ var it = e.target || e.srcElement; var id = it.id.substr(14); var ajax = new Ajax.Request('groups/<?php echo $this->group->getPKValue(); ?> /invitememberajax/' + id, { method: 'get', onSuccess: function(transport){ if (transport.responseText == 'success') { search_handler.add_invite_callback(it); } else { alert('<?php echo $this->javascript_escape($words->getSilent('GroupsCouldNotInvite')); ?> '); } }, onFailure: function(transport){ alert('<?php echo $this->javascript_escape($words->getSilent('GroupsInviteFailedTechError')); ?> '); } }); }, add_invite_callback: function(it){ var invited = it.firstChild.data.substr(7); var tr = document.createElement('tr'); var td = document.createElement('td'); td.appendChild(document.createTextNode(invited + '<?php echo $this->javascript_escape($words->getSilent('GroupsHasBeenInvited')); ?> ')); td.setAttribute('colspan', 2); tr.appendChild(td); $('invited_members').tBodies[0].appendChild(tr); $(it).remove(); } }; $('search_username').observe('focus', function(e){ if ($('search_username').value == '<?php echo $this->javascript_escape($words->getSilent('GroupsEnterUsername')); ?> ') { $('search_username').value = ''; } }); $('invite_form').observe('submit', function(e){ e = e || window.event; var ajax = new Ajax.Request('groups/<?php echo $this->group->getPKValue(); ?> /membersearchajax/' + $('search_username').value, { method: 'get', onSuccess: function(transport){ var result = ((transport.responseText != '[]') ? transport.responseText.evalJSON() : {}); search_handler.display_result(result); }, onFailure: function(transport){ alert('<?php echo $this->javascript_escape($words->getSilent('GroupsInviteFailedTechError')); ?> '); } }); Event.stop(e) }); </script> <?php echo $words->flushBuffer(); ?> </div> <!-- c50r --> </div> <!-- subcolums --> </div> <?php }
public function __construct() { parent::__construct(); $this->purifier = MOD_htmlpure::getAdvancedHtmlPurifier(); }
<?php echo $callback_tag; ?> <div class="type-text"> <h3><?php echo $words->get("ProfileNoteDeleteNote"); ?> </h3> </div> <p class="flash notice"><?php echo $words->get("ProfileNoteDeleteReally"); ?> </p> <?php $m = $this->model->getMemberWithId($note->IdContact); $purifier = MOD_htmlpure::getAdvancedHtmlPurifier(); ?> <input name="IdMember" value="<?php echo $member->id; ?> " type="hidden" /> <div class="row"></div> <div class="subcolumns"> <div class="c33l"> <div class="subcl"> <?php echo $layoutbits->PIC_50_50($m->Username, '', $style = 'float_left framed'); ?> <div class="userinfo"> <a href="members/<?php echo $m->Username;
/** * Look up texts in words table. * Use purifier to add paragraphs and linkify. Never add translation links. * * @param string $code keyword for finding text, not allowed to be empty * @param array $replacements strings to be inserted into the translation's %s placeholders * @param string $language ShortCode of language, 2 to 4 letter * * @return string localized text, in case of no hit the word keycode */ public function getPurified($code, $replacements = array(), $language = false) { $text = $this->getRaw($code, $replacements, $language); // hack to work around a problem during signup require_once SCRIPT_BASE . '/modules/htmlpurify/lib/htmlpurify.lib.php'; $purifier = MOD_htmlpure::get()->getAdvancedHtmlPurifier(); return $purifier->purify($text); }
private function cleanupText($txt) { $purifier = MOD_htmlpure::get()->getForumsHtmlPurifier(); return $purifier->purify($txt); }
<?php $activityInTheFuture = time() - 7 * 24 * 60 * 60 < strtotime($this->activity->dateTimeEnd); $formkit = $this->layoutkit->formkit; $callbackTagsJoinEdit = $formkit->setPostCallback('ActivitiesController', 'joinLeaveActivityCallback'); $callbackTagsCancelUncancel = $formkit->setPostCallback('ActivitiesController', 'cancelUncancelActivityCallback'); $layoutbits = new Mod_layoutbits(); $request = PRequest::get()->request; $login_url = 'login/' . htmlspecialchars(implode('/', $request), ENT_QUOTES); $purifier = MOD_htmlpure::getActivitiesHtmlPurifier(); $status = array(); if (isset($_SESSION['ActivityStatus'])) { $status = $_SESSION['ActivityStatus']; unset($_SESSION['ActivityStatus']); } if (!empty($status)) { echo '<div class="success">' . $words->get($status[0], $status[1]) . '</div>'; } if ($this->activity->status == 1) { // the activity has been cancelled echo '<div class="note">' . $words->get('ActivityHasBeenCancelled') . '</div>'; } $errors = $this->getRedirectedMem('errors'); if (!empty($errors)) { $errStr = '<div class="error">'; foreach ($errors as $error) { $errStr .= $words->get($error) . "<br />"; } $errStr = substr($errStr, 0, -6) . '</div>'; echo $errStr; } $vars = $this->getRedirectedMem('vars');
BW Rox is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses/> or write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ $words = $this->getWords(); $words = new MOD_words(); $styles = array('highlight', 'blank'); // alternating background for table rows $iiMax = count($list); // This retrieve the list of the verifierd $purifier = MOD_htmlpure::getBasicHtmlPurifier(); ?> <p> <?php echo $words->getFormatted("verifymembers_approvedverifiersexp", $words->getFormatted("verifymembers_VerifiedByApproved"), $words->getFormatted("verifymembers_VerifiedByVerified"), $words->getFormatted("verifymembers_VerifiedByNormal")); ?> </p> <table class="full"> <?php if ($list != false) { ?> <tr align="left"> <th></th> <th><?php
/** * return the formatted email content for $msg * * @param object $message the msg object as returned by the SQL query * @param bool $html whether to format message in html (true) or plaintext (false) * * @return string the formatted email message body */ private function _formatMessage($message) { $inboxUrl = $this->baseuri . "messages"; $messageUrl = $inboxUrl . '/' . $message->id; $purifier = MOD_htmlpure::get()->getPurifier(); $direction_in = true; // true means received message (false is sent) $contact_username = $this->Sender->Username; $contactProfileUrl = $this->baseuri . 'members/' . $contact_username; $member = $this->Sender; $languages = $this->Sender->get_languages_spoken(); $words = $this->words; $templateUsedInEmail = true; $baseuri = $this->baseuri; ob_start(); include SCRIPT_BASE . 'tools/mailbot/templates/readMessage.php'; $text = ob_get_contents(); ob_end_clean(); return $text; }
public static function sendEmail($subject, $from, $to, $title, $body, $language = 'en', $html = true, $attach = array()) { self::init(); // Check that $to/$from are both arrays $from = is_array($from) ? $from : explode(',', $from); $to = is_array($to) ? $to : explode(',', $to); //Create the message $message = self::getSwift()->setSubject($subject)->setFrom($from)->setTo($to); // Purify HTML. All tags for forum posts + <hr> for the footer separation $purifier = MOD_htmlpure::get()->getMailHtmlPurifier(); $body = $purifier->purify($body); $html2text = new Html2Text\Html2Text($body, false, array('do_links' => 'table', 'width' => 75)); $plain = $html2text->getText(); $message->setBody($plain); // $message->addPart($plain, 'text/plain'); // Add the html-body only if the member wants HTML mails if ($html) { // Translate footer text (used in HTML template) $words = new MOD_words(); $footer_message = $words->getPurified('MailFooterMessage', array(date('Y')), $language); // Using a html-template ob_start(); require SCRIPT_BASE . 'templates/shared/mail_html.php'; $mail_html = ob_get_contents(); ob_end_clean(); $message->addPart($mail_html, 'text/html'); } return self::sendSwift($message); }
private function cleanupText($txt) { if (strpos($txt, "href=") === false) { // We will only try to make clickable links if there is not yet a href= (ie already present clickable link) in the text $txt = $this->makeClickableLinks($txt); } $purifier = MOD_htmlpure::get()->getPurifier(); $txt = $purifier->purify($txt); return $txt; }