예제 #1
0
 /**
  * singleton getter
  *
  * @param void
  * @return PApps
  */
 public static function get()
 {
     if (!isset(self::$_instance)) {
         $c = __CLASS__;
         self::$_instance = new $c();
     }
     return self::$_instance;
 }
예제 #2
0
 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();
 }
예제 #3
0
    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>";
    }
예제 #4
0
 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;
     }
 }
예제 #5
0
 /**
  * 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);
 }
예제 #6
0
 public function __construct($model = false)
 {
     parent::__construct();
     $this->purifier = MOD_htmlpure::getSuggestionsHtmlPurifier();
 }
예제 #7
0
파일: about.php 프로젝트: gpuenteallott/rox
        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 
    }
예제 #9
0
 public function __construct()
 {
     parent::__construct();
     $this->purifier = MOD_htmlpure::getAdvancedHtmlPurifier();
 }
예제 #10
0
    <?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;
예제 #11
0
 /**
  * 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);
 }
예제 #12
0
 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 
예제 #15
0
 /**
  * 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;
 }
예제 #16
0
 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);
 }
예제 #17
0
 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;
 }